主要内容

使用外部API标记音频信号中的口头单词

此示例显示如何标记口语单词信号贴标器.该示例使用IBM®Watson Speech to Text API和Audio Toolbox™软件。看到语音到文本转录(音频工具箱)有关以下说明:

  1. 下载音频工具箱speech2text扩展功能,可从MATLAB®中心。

  2. 通过IBM云服务建立IBM沃森语音API。您必须创建一个IBM Cloud帐户、一个Speech to Text服务实例,然后转到服务仪表板并复制凭据(API Key和URL值)。看到入门教程在IBM文档中获取更多详细信息。

语音数据加载

加载一个音频数据文件,其中包含一个男性声音说的句子“Oak is strong, and also gives shade”。信号采样频率为44.1 kHz。

[y,fs] = audioread('oakm4a');%听到,键入soundsc(y,fs)
  1. 打开信号贴标器.在这一点贴标签机选项卡,单击进口并选择来自工作区成员列表。在对话框中,选择信号,y

  2. 添加时间信息:选择时间从下拉列表和指定FS.作为采样率,以千赫为单位。

  3. 关闭对话框。信号出现在标记信号集浏览器

定义标签

定义标签以连接到信号。点击添加定义在这一点贴标签机选项卡。指定标签名称作为,选择一个标签类型ROI,然后进入数据类型作为细绳

创建自定义自标签功能

创建一个自定义函数来标记音频文件中口头的单词。(代码STT.函数在示例稍后。)看自定义标签功能了解更多信息。

  1. 进入存储的目录speech2textP-code文件和存储IBM Cloud凭据的JSON文件。

  2. 创建功能,在贴标签机选项卡,单击自动化的价值并选择添加自定义功能信号贴标器显示一个对话框,要求您输入要添加的功能的名称,描述和标签类型。进入STT.名称字段和选择ROI作为标签类型.你可以离开描述字段为空,或者您可以输入自己的描述。

  3. 复制功能代码并将其粘贴在出现的空模板中。保存文件。该函数出现在库中。

定位和识别口语单词

找到并识别输入信号中口头的单词。

  1. 标记信号集浏览器,选中旁边的复选框y

  2. 选择标签定义浏览器。

  3. 在这一点自动价值画廊,选择STT.

  4. 点击Auto-Label并选择Auto-Label所有信号.点击好吧在出现的对话框中。

信号贴标器定位并标记语音。

导出标记信号

导出标记信号。在这一点贴标签机选项卡,单击出口并选择标记的信号设置为文件.在出现的对话框中,给出名称Transcription.mat,并添加一个可选的简短描述。点击出口

返回Matlab®命令窗口。加载标记的信号集。该组只有一个成员。获取标签的名称,并使用该名称获取并显示转录的单词。

加载转录ln = getLabelnames(TranscribedAudio);v = getLabelvalues(TranscribedAudio,1,Ln)
v =7×2表Roilimits值____________________ 0.09 0.56“橡木”0.59 0.97“1 1.78”强“1.94 2.19”和“2.22 2.67”也“2.67 3.22”给出“3.25 3.91”阴影“。

将字符串的标签值更改为类别。用一个signermask.对象用每个单词使用不同颜色的颜色绘制信号。

V.Value =分类(V.Value,V.Value);msk = signalmask(v,'采样率'fs);s = getSignal (transcribedAudio, 1);s.y plotsigroi (msk)

STT.功能:定位和识别口语单词

这个函数使用IBM Watson Speech API和Audio Toolboxspeech2text扩展功能以从音频文件中提取口语单词。

函数[labelvals,labellocs] = stt(x,t,parentlabelval,parentlabelloc,varargin)aspeepehobjectibm = speepclient('IBM''时间戳',真的);fs = 1 /(t(2)-t(1));tixt = speem2text(Aspeepeehobobjectibm,x,fs);numlabels = numel(tixt.timestamps {:});labelvals = strings(numlabels,1);Labellocs =零(Numlabels,2);为了idx = 1:numlabels labelvals(idx)= tixt.timestamps {:} {idx} {1};Labellocs(IDX,1)= Tixt.Timestamps {:} {idx} {2};Labellocs(IDX,2)= Tixt.Timestamps {:} {idx} {3};结尾结尾

也可以看看

应用

对象

相关例子

更多关于