处理语音的问题。需要确定音素并识别元音和辅音。有没有人参与这件事?请指教有关该主题的哪些工作值得阅读?
区分元音和辅音
这在某种程度上是一个广泛的问题。一本有趣的书是Rabiner & Schafer的《语音信号的数字处理》,您可以在其中找到一些很好的入门说明。在研究更高级的技术时,它可能已经过时了,但我认为了解语音的主要特征是件好事。
简而言之,我们发出的每一种声音都是由声道的配置决定的。特别是,如果声带紧张且不振动,则称声音为清音。但是,如果它们振动,则声音是有声的。当您说“Ahhhh”或“Ssssshh”时,您可以通过将手放在脖子上来感知差异。在西班牙语中,所有元音都是浊音,所有辅音都是清音(这并不完全正确,请参阅评论)。我不确定其他语言。您可以考虑一个发生器(声门),它以一种声音呈现其特征形状的方式连接到一个过滤器(声道)。这实际上是语音生成模型的基础(例如最简单的)。
如果你仔细观察一个语音信号,你可以很容易地发现不同音素之间的差异。浊音音素被认为是伪周期性的。这意味着,如果您查看足够短的信号片段(大约几十毫秒长,例如 40 毫秒),您可以找到谐波正弦信号的叠加。这意味着:
- 信号是周期性的,具有基频. 这也称为音高。
- 谐波将随频率出现...哪种能量取决于确切的音素。
如果您绘制此语音信号的频谱,您会发现类似以下内容(来源)。
例如,这类似于铜管乐器声音的谐波结构。
相比之下,清音信号没有如此清晰的谐波结构。事实上,它们没有基频,可以被认为是噪声信号。你可以说“Ahh”来唱歌,但不能说“Ddd”。清音可以被认为是有色噪声。他们通常比发声的能量少。
考虑到这些差异,我们可以考虑一种自动检测它们的方法。
浊音是周期性的,而清音则不是。
要检测周期性,您可以使用自相关等方法(在本网站已广泛处理)。
有声的声音比无声的声音更有能量。
您可以将信号划分为 20-40 毫秒的窗口,计算每个窗口的能量并根据阈值决定。
清音是嘈杂的,并且在高频中往往很突出,而浊音则不然。
因此,清音会比浊音更频繁地与零交叉。这称为过零率。
虽然这些简单的方法本身并不太准确,但却是一个很好的起点。此外,我相信您可以通过将它们结合起来获得良好的结果。无论如何,这篇文章并不能代替我之前提到的一本好书。这只是一种介绍,向您展示一些可能性。