我正在尝试将语音识别和说话人智能化技术结合起来,以确定对话中有多少发言者以及哪位发言者说了什么。
为此我使用CMU Sphinx和LIUM 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
有谁知道如何结合这两个工具包?
答案 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语言)