主要内容

在语音信号中标注口语

这个例子展示了如何给口语贴上标签信号贴标签机.该示例使用wav2vec 2.0预训练网络,需要深度学习工具箱™并安装预训练模型。有关下载和安装wav2vec 2.0预训练模型的详细信息,请参见speech2text(音频工具箱)

音频文件读入

加载一个音频数据文件,其中包含“实值信号的离散傅里叶变换是共轭对称的”这句话。

[y,fs] = audioread(“speech_dft.wav”);输入soundsc(y,fs)

定义标签

开放信号贴标签机并定义要附加到信号上的标签。点击添加贴标签机选项卡,然后添加标签定义.指定标签名称作为单词,选择标签类型ROI,并选择数据类型字符串

导入语音数据

将信号导入应用程序。

  1. 贴标签机选项卡上,单击进口并选择从工作空间成员列表。在对话框中,选择信号y

  2. 添加时间信息。选择时间,并指定fs为采样率,单位为Hz。

  3. 点击导入和关闭.信号出现在标记信号集浏览器

定位和识别口语

定位并识别输入信号中所说的单词。

  1. 选择单词标签定义浏览器。

  2. 自动化的价值画廊,选择从语音到文本

  3. 点击Auto-Label并选择自动标记所有信号

  4. 在对话框中,选择wav2vec 2.0服务名称列出并选中旁边的复选框段话。

  5. 点击好吧

信号贴标签机定位并标注语音。在标记信号集浏览器,选中右侧的复选框y画出信号。扩大单词并选择每个单词旁边的复选框,以可视化相应的标记区域。注意,“离散的”这个词被错误地标记为“谨慎的”。您可以通过右键单击来纠正此错误谨慎的价值列,选择编辑,并输入正确的值“discrete”。

输出标记信号

导出标记的信号。在贴标签机选项卡上,单击出口并选择到文件标记信号集列表。在出现的对话框中,给出名称Transcription.mat并添加可选的简短描述。点击出口

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

负载转录ln = getLabelNames(ls);v = getLabelValues(ls,1,ln)
v =12×2表ROILimits值__________________ ___________ 0.34063 0.4208 " 0.46088 0.82161 "离散" 0.88174 1.2826 "傅里叶" 1.3427 1.984 "变换" 2.0441 2.1042 "的" 2.1644 2.2044 "一个" 2.2846 2.485 "实" 2.5251 2.8658 "有值" 2.9259 3.3067 "信号" 3.3869 3.467 "是" 3.5271 4.0081 "共轭" 4.0482 4.5091 "对称"

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

v.Value = category (v.Value,v.Value);msk = signalMask(v,SampleRate=fs);s = getSignal(ls,1);s.y plotsigroi (msk)

图中包含一个轴对象。axis对象包含13个line类型的对象。

创建一个与音频信号长度相同的逻辑向量。将向量设置为真正的其中语音信号的相应部分包含单词“共轭”。

BSL = binmask(msk,height(s));情节(s.Time [s。y声波测井(:,v。值= =“共轭”)))

图中包含一个轴对象。axis对象包含2个line类型的对象。

另请参阅

应用程序

对象

相关的例子

更多关于