【问题标题】:How to combine speech recognition and speaker diarization?如何结合语音识别和说话人分类?
【发布时间】:2013-03-24 19:37:42
【问题描述】:
我正在尝试将语音识别和说话者分类技术结合起来,以确定对话中有多少说话者以及哪个说话者说了些什么。
为此,我使用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
有谁知道如何结合这两个工具包?
【问题讨论】:
标签:
speech-recognition
speech-to-text
cmusphinx
【解决方案1】:
运行分类工具以获取每位发言者的分段时间。它们看起来像这样:
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 分别处理每个片段并显示转录。
(可选)对每个说话人的片段运行说话人自适应,并使用说话人适应模型再次处理每个片段。
【解决方案2】:
如果您可以追溯并更改录音设置,您可以将扬声器按录音通道分开,然后单独分析每个通道。
这是电话分析中的常用方法。
您可以使用 Google Speech to Text 实现此目的,启用每个通道的不同识别 (enable_separate_recognition_per_channel=True) 并启用扬声器分类 (enable_speaker_diarization=True)
(使用 Python 语言)