【问题标题】:Vosk Speaker RecognitionVosk 扬声器识别
【发布时间】:2021-07-26 22:15:51
【问题描述】:

我目前正在将Vosk Speech recognition 实施到应用程序中。具体来看说话人识别,我已经从示例中实现了 test_speaker.py 并且它是功能性的。 作为新手,我如何识别和/或创建参考说话人签名? 使用提供的那个,用我的音频示例计算的距离列表并没有描述所涉及的两个扬声器:

[1.0182311997728735, 0.8679279016022726, 0.8552687907177629, 1.0258941854519696, 0.8666933753723253, 0.9291881495586336, 1.0316585805917928, 1.0227699471036409, 0.8442800102809634, 0.9093189414477789, 0.9153723223264221, 0.9705387223260904, 0.9077720598812595, 0.9524431272217568, 0.9179475137290445]

如果没有一种有效的方法可以从正在分析的音频中计算参考扬声器,您是否知道可以与 Vosk 一起使用来识别音频文件中的扬声器的另一种解决方案? 如果没有,你会建议什么其他的语音到文本选项? (我已经玩过google的了)

提前致谢

【问题讨论】:

    标签: nlp speech-recognition transcription vosk


    【解决方案1】:

    我最近也在使用 Vosk,创建新参考扬声器的方法是从识别器中提取 X-Vector 输出。

    这是来自 python 示例的代码,我将每个话语的 X-Vector 放入一个名为“vectorList”的列表中。

        if recognizer.AcceptWaveform(data):
            res = json.loads(recognizer.Result())
            # print("Text:", res['text'])
            # Checks that X-Vector ('spk') is in the data file, res
            if 'spk' in res:
                # Append X-Vector to baseline list
                vectorList.append(res['spk'])
    

    在我的程序中,然后我将向量列表中的这些向量用作参考说话者,并与 cosine_dist 函数中的其他 x 向量进行比较。 cosine_dist 函数返回一个“说话者距离”,告诉您两个 x 向量的差异程度。

    总的来说,我正在开发的程序执行以下操作:

    • 通过识别器运行一些“基线”音频文件以获取 x 向量
    • 将 x 向量存储在列表中
    • 通过识别器运行一些测试音频文件以获取要测试的 x 向量
    • 使用 cosine_dist 函数针对每个“基线”x 向量运行每个测试 x 向量
    • 平均从 cosine_dist 返回的扬声器距离以获得平均扬声器距离

    我应该提到,我不是 Vosk 方面的专家,而且完全有可能有更好的方法来解决这个问题。这正是我发现的方法,基于 python 目录中的示例问题。

    【讨论】:

      猜你喜欢
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多