如何结合语音识别和扬声器分类?

时间:2013-04-03 08:21:54

标签: speech-recognition speech-to-text cmusphinx

我正在尝试将语音识别和说话人智能化技术结合起来,以确定对话中有多少发言者以及哪位发言者说了什么。

为此我使用CMU SphinxLIUM Speaker Diarization

我可以单独运行这两个工具,即我可以运行Sphinx 4并从音频获取文本输出并运行LIUM工具包并获取音频片段。

现在我想将这两个结合起来,得到如下所示的输出:

s0 : this is my first sentence.
s1 : this is my reply.
s2: i do not what you are talking about

有谁知道如何结合这两个工具包?

2 个答案:

答案 0 :(得分:5)

运行diarization工具以获取每个发言者的片段时间。它们看起来像这样:

file1 1 16105 217 M S U S9_file1
file1 1 16322 1908 M S U S9_file1
file2 1 18232 603 M S U S9_file2

16106和217之类的数字是段开始和段长度。解析文本输出并在数组中存储时间。

然后使用时间在片段上分割原始音频。

使用Sphinx4分别处理每个片段并显示转录。

可选地,为每个扬声器的片段运行扬声器适配,并使用适合扬声器的模型再次处理每个片段。

答案 1 :(得分:0)

如果您可以追溯行动并更改录音设置,则可以在每个录音通道中分开扬声器,然后分别分析每个声道。 这是电话分析中的常用方法。

您可以使用Google Speech to Text来实现这一点,启用每个通道的不同识别(enable_separate_recognition_per_channel=True)并启用说话者二值化(enable_speaker_diarization=True

(使用Python语言)