此示例显示如何标记口语单词信号贴标器.该示例使用IBM®Watson Speech to Text API和Audio Toolbox™软件。看到语音到文本转录(音频工具箱)有关以下说明:
下载音频工具箱speech2text
扩展功能,可从MATLAB®中心。
通过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)
打开信号贴标器.在这一点贴标签机选项卡,单击进口并选择来自工作区
在成员列表。在对话框中,选择信号,y
.
添加时间信息:选择时间
从下拉列表和指定FS.
作为采样率,以千赫为单位。
关闭对话框。信号出现在标记信号集浏览器.
定义标签以连接到信号。点击添加定义在这一点贴标签机选项卡。指定标签名称作为字
,选择一个标签类型的ROI
,然后进入数据类型作为细绳
.
创建一个自定义函数来标记音频文件中口头的单词。(代码STT.
函数在示例稍后。)看自定义标签功能了解更多信息。
进入存储的目录speech2text
P-code文件和存储IBM Cloud凭据的JSON文件。
创建功能,在贴标签机选项卡,单击自动化的价值并选择添加自定义功能.信号贴标器显示一个对话框,要求您输入要添加的功能的名称,描述和标签类型。进入STT.
在名称字段和选择ROI
作为标签类型.你可以离开描述字段为空,或者您可以输入自己的描述。
复制功能代码并将其粘贴在出现的空模板中。保存文件。该函数出现在库中。
找到并识别输入信号中口头的单词。
在标记信号集浏览器,选中旁边的复选框y
.
选择字
在标签定义浏览器。
在这一点自动价值画廊,选择STT.
.
点击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};结尾结尾