将音节录音修剪到仅元音部分

Posted

技术标签:

【中文标题】将音节录音修剪到仅元音部分【英文标题】:Trim syllable audio recording to only the vowel part 【发布时间】:2021-09-29 17:06:39 【问题描述】:

对于一个中文学习应用,我们让用户记录一个音节,我们使用语音识别来评估发音是否正确。

每个汉语音节都可以用不同的声调(音高差异)发音,具有不同的含义。 我们发现谷歌翻译和 Swift Speech 框架都不够准确,无法确定发音是否正确。 因此,我们使用Beethoven 从音频中检测音高,以在语音识别 API 之外进行评估。

挑战在于,在汉语中,声调只在音节的元音中发音。 因此,如果用户只发音元音,贝多芬就可以很好地工作,例如“一种”。 但是在诸如“san”这样的音节中,结果被辅音“s”和“n”所掩盖。

所以我正在寻找一种方法将音节录音修剪为仅元音,以便我们可以仅在元音上使用贝多芬并正确检测中文音调。 我也很高兴知道是否有人对如何应对这一挑战有更好的想法。

最好, 保罗

【问题讨论】:

【参考方案1】:

关于元音和辅音的一个可能有用的事实是,元音通常被认为具有趋于谐和并集中在共振峰区域的频率内容(前两个是最重要的,而第二个是低于 3K Hz),并且许多辅音(摩擦音、咝音)在 4K Hz 或以上具有噪声能量。这是来自lecture on the acoustics of fricatives 的一个很好的图表,可以看到。

您可能需要比贝多芬更复杂的快速傅立叶分析工具来区分何时出现咝咝声或摩擦音的频率内容。我没用过贝多芬,不知道它的功能是什么。

不过,我对鼻音知之甚少。相同的讲座系列,不同的章节(“爆破音和鼻音”)提供了以下信息:

元音的鼻化是由低频的存在引起的 共振和共振峰阻尼的增加。

在我看来,通过频谱区分鼻音和元音是一项挑战。

【讨论】:

对我来说这个问题可能会更好地发布在dsp.stackexchange.com,因为这种级别的音色分析涉及 DSP 工具和概念。我的答案与其说是直接使用语音识别工具,不如说是对声学、共振峰和语音学的一般知识。 感谢菲尔的支持!元音和辅音本质上的区别似乎是要走的路。我不知道 dsp Stack Exchange,也会在那里发帖!再次感谢。 有些图表显示了不同元音的不同共振峰结构。可能是“项目蠕变”或一个有趣的建议:如果您可以区分 DSP 分析中的共振峰,以创建响应的声音来显示说话者做了什么以及他们应该瞄准什么,突出差异,以及相关图表前/后或打开/关闭位置。例如,我编写了一个工具,可以实时生成和播放具有动态 Hz、音量和两个动态共振峰的音高。

以上是关于将音节录音修剪到仅元音部分的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 CreationDate 资源值

实现音节化算法但实际上很慢

如何在python中保存修剪后的波形文件?

英语元音字母在非重读音节中的读音规则

关于英语单词元音字母的发音规则

L314 单音节词读音规则-元音字母发音规则