在语音信号中标注口语
这个例子展示了如何给口语贴上标签信号贴标签机.该示例使用IBM®Watson Speech to Text API和Audio Toolbox™软件。“语音转录(音频工具箱)提供以下说明:
下载音频工具箱
speech2text
扩展功能,可从MATLAB®Central。设置IBM Watson语音API,通过IBM云服务提供。您必须创建一个IBM Cloud帐户、一个Speech to Text服务实例,然后转到服务仪表板并复制您的凭据—API Key和URL值。有关详细信息,请参见入门教程在IBM文档中。
设置语音客户端
要执行语音到文本的转录,必须创建speechClient
对象。确保speech2text
P-code文件和存储IBM Cloud凭证的JSON文件位于当前文件夹或MATLAB路径中。
speechObjectIBM = speechClient(“IBM”、时间戳= true);
加载一个音频数据文件,其中包含一个男性声音说的句子“Oak is strong, and also giving shade”。信号在44.1千赫采样。
[y,fs] = audioread(“oak.m4a”);输入soundsc(y,fs)
定义标签
开放信号贴标签机并定义要附加到信号上的标签。点击添加在贴标签机选项卡,然后添加标签定义.指定标签名称作为单词
,选择标签类型的ROI
,并选择数据类型的字符串
.
导入语音数据
将信号导入应用程序。
在贴标签机选项卡上,单击进口并选择
从工作空间
在成员列表。在对话框中,选择信号y
.添加时间信息。选择
时间
,并指定fs
为采样率,单位为Hz。点击导入和关闭.信号出现在标记信号集浏览器.
定位和识别口语
定位并识别输入信号中所说的单词。
选择
单词
在标签定义浏览器。在自动化的价值画廊,选择
从语音到文本
.点击Auto-Label并选择
自动标记所有信号
.在对话框中,选择
IBM
从服务名称列出并选中旁边的复选框段话。点击好吧.
信号贴标签机定位并标注语音。在标记信号集浏览器,选中右侧的复选框y
画出信号。扩大单词
并选择每个单词旁边的复选框,以可视化相应的标记区域。
输出标记信号
导出标记的信号。在贴标签机选项卡上,单击出口并选择到文件
从标记信号集列表。在出现的对话框中,给出名称Transcription.mat
并添加可选的简短描述。点击出口.
回到MATLAB命令窗口。加载标记的信号集。集合只有一个成员。获取标签的名称,并使用该名称获取和显示转录的单词。
负载转录ln = getLabelNames(transcribedAudio);v = getLabelValues(转录音频,1,ln)
v =7×2表ROILimits价值 ____________ ________ 0.59 - 0.97 0.09 - 0.56“橡树””是“1 1.78“强有力”的1.94 - 2.19”和“2.22 - 2.67”也“2.67 - 3.22”给“3.25 - 3.91“阴影”
将标签值从字符串更改为类别。使用一个signalMask
对象为每个单词使用不同的颜色绘制信号。
v.Value = category (v.Value,v.Value);msk = signalMask(v,SampleRate=fs);s = getSignal(transcribedAudio,1);s.y plotsigroi (msk)
创建一个与音频信号长度相同的逻辑向量。设置为真正的
说话者说出“是”这个词的信号段。
BSL = binmask(msk,height(s));情节(s.Time [s。y声波测井(:,v。值= =“是”)))