
解决区分说话人不准问题本文章来自我的博客点击这里查看完整内容。使用较短的录音会出现无法准确区分说话人的情况无论是使用cam还是使用eres2netv2。解决方案是修改vad参数因为SenseVoiceSmall模型和Paraformer模型不同SenseVoiceSmall模型自身会输出带有标点符号的文字内容而Paraformer输出的是没有标点符号的需要额外借助punc模型添加标点符号因此在使用SenseVoiceSmall和声纹模型时会使用vad_segment的模式这个模式只对使用了spk_model有用。其实就是分段计算声音特征值向量后面用聚类算法进行聚类。如果这个vad切割的时间点不对比如本来是两人讲话的声音结果截取到一个vad_segment中了这就会导致计算声纹特征值向量的值不准进而影响聚类。因此需要修改vad参数使得切割的时间点更加精细。可以修改最大结束静音时间改小些同时把最大单个vad片段的时长缩短些。这都可以减少多个人的声音把切分到一个vad片段的风险从而提升区分说话人的准确率。同时根据官方的说法用eres2netv2模型对短音频识别的准确率会比cam更高。因为我们是专门针对通话录音进行转写的而通话录音通常是只有两人讲话的一个是主叫一个是被叫我们为了进一步提升识别说话人的准确率我们可以预设说话人数量比如设置preset_spk_num2这样就最多只能返回两个speaker。如下面的代码resultmodel.generate(inputrE:\test\Cantonese.mp3,batch_size_s300,use_itnTrue,preset_spk_num2,merge_thr0.50,languageyue)解决并发问题对于生产上要使用这个些模型来说我们想要尽可能的提高并发能力那么我们可以修改batch_size_s值这个是和batch_size有区别的batch_size是固定的值每次推送固定数据给CUDA处理而batch_size_s是动态的。所以如果我们的显存够大就应该尽可能设置更大的值比如这里我使用2080Ti魔改显卡显存是22GB的那么我可以设置这个batch_size_s值为300到600。其它更多内容欢迎关注我的博客我会经常发布关于ASRTTS和LLM相关的内容。如果喜欢看视频可以关注B站“编程分享录”。如需公司Linux服务器部署企业ASR也可以访问我的博客首页。点击这里跳转到我的博客。