我目前正在将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一起使用的其他解决方案来识别音频文件中的扬声器?如果没有,你还会推荐什么其他的语音转文本选项?(我已经用过谷歌的了)
提前感谢
发布于 2021-10-22 15:30:19
我最近也在使用Vosk,创建一个新的参考扬声器的方法是从识别器中提取X-Vector输出。
这是python示例中的代码,我将其修改为将每个话语的X向量放入名为"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向量有多大不同。
总而言之,我正在开发的程序执行以下操作:
我不是Vosk的专家,我应该提一下,完全有可能有更好的方法来做这件事。这正是我根据python目录中的示例问题找到的方法。
https://stackoverflow.com/questions/67386930
复制相似问题