Something wrong with the VAD algorithm

1、错误原因

调用阿里语音识别模型 paraformer-large-zh 进行多线程推理时出现错误内容如下:

bash 复制代码
warning

Something wrong with the VAD algorithm

或

VAD data_to_pop is bigger than cache["stats"].data_buf .size() !!!

error in calling pop data_buf

代码调用使用funasr库加载,如下:

python 复制代码
from funasr import AutoModel

model = AutoModel(model="paraformer-zh", model_revision="v2.0.4",
                  vad_model="fsmn-vad", vad_model_revision="v2.0.4",
                  punc_model="ct-punc-c", punc_model_revision="v2.0.4"
                  )
res = model.generate(input=f"{model.model_path}/example/asr_example.wav", 
            batch_size_s=300, 
            hotword='魔搭')
print(res)

上述代码使用了语音识别model="paraformer-zh"、端点检测vad_model="fsmn-vad"、标点符号模型punc_model="ct-punc-c",其中,vad和punc是协同使用的,而业务中多线程并发推理时出现了错误:Something wrong with the VAD algorithm,主要是vad算法的错误,最后通过多线程模拟发现语音识别过程中,vad模型无法并发调用。

2、业界方法

实际上提出该问题的博文较多,如funasr官方github 的issue中均有提及,但没有官方回复,有一位老哥提出了队列方法的解法 。各位可以看看,后面我提出我的解法及启发解法

3、解法

其实本质就是解决语音识别中三个模型不能并发调用的问题,在多线程环境里,我们可以使用线程锁来解决,只需要添加几行代码,就能解决该错误,下面我来举个例子如何添加,首先需要明确一点,多线程访问共享资源时,需要加锁,比如语音识别模型,读写统一文件等等,而我们加锁只需要加在实际语音模型的调用函数中,模型初始化、传参过程不需要加锁,比如你在deal.py文件中使用了语音识别模型asr_model

python 复制代码
# deal.py

def deal(audio_name):
    result = asr_model.generate(input=audio_name,
                                batch_size_s=300,
                                hotword=[])
    result 处理

加锁方式如下:

python 复制代码
# deal.py

import threading
lock = threading.Lock()

def deal(audio_name):
    with lock:
        result = asr_model.generate(input=audio_name,
                                    batch_size_s=300,
                                    hotword=[])
    result 继续处理

如上方式即可实现多线程并发调用语音识别模型,实现方法简单,可快速实现,在调用代码中添加锁即可。

上述思想也可以理解为队列方式,只不过这个队列我是通过线程锁来实现的,亲测有效,如有问题评论区交流。

相关推荐
sramdram2 小时前
离线语音识别芯片|智能离线语音SoC芯片语音识别方案
人工智能·语音识别·语音识别芯片·离线语音识别芯片
小白狮ww9 小时前
告别「机械念经」:TADA-1b 让模型「说人话」
人工智能·语音识别·语音生成·ai声音
hey you~2 天前
400电话+语音机器人+云客服系统融合方案:企业通信中台的技术选型与架构实践
人工智能·架构·语音识别·架构设计·技术选型·语音机器人·云客服
万亿少女的梦1682 天前
基于STM32F103C8T6与ASR Pro的语音控制四足机器人设计
stm32·语音识别·嵌入式系统·四足机器人·舵机控制
2601_958352902 天前
研发成本骤降95%:AP-0316 语音模组如何重塑硬件产品的商业逻辑
人工智能·语音识别·降噪处理·音频处理模块·硬件开发模块
B8017913Y2 天前
深圳学生语音识别APP解决方案对比听脑企业版更适配院校组织使用
人工智能·语音识别
木木学AI4 天前
AI电话系统技术选型:语音识别精度、高并发调度与CRM集成评估
人工智能·语音识别
Java小白笔记6 天前
Codex 桌面应用设置功能完全指南
人工智能·opencv·目标检测·机器学习·计算机视觉·数据挖掘·语音识别
俊基科技7 天前
USB/I2S / 模拟多通道输出,AU-60 轻松适配各类矿用报警设备
语音识别·硬件开发·ai降噪·回音消除·防啸叫
最爱老式锅包肉8 天前
《HarmonyOS技术精讲-Core Speech Kit(基础语音服务)》第2篇:语音识别核心功能——流式与非流式实现
语音识别·xcode·harmonyos