当前位置: 首页 > java >正文

sherpa-ncnn:音频处理跟不上采集速度 -- 语音转文本大模型


目录

  • 1. 问题报错
  • 2. 解决方法


1. 问题报错

报错

An overrun occurred, which means the RTF of the current model on your board is larger than 1. You can use ./bin/sherpa-ncnn to verify that. Please select a smaller model whose RTF is less than 1 for your board.

问题

这个错误表明音频处理速度跟不上音频采集速度,导致缓冲区溢出。

  • 具体是,调用sherpa-ncnn-alsa_Test时,音频是实时采集的,在采集到音频后会对音频数据进行额外处理。

  • 例如:将音频转出来的文字,组成句子,传输给其他API调用。

  • 在其他API处理这个句子时,语音还在实时采集,这是就会导致处理速度跟不上音频采集速度。

解决思路

在音频额外处理期间,停止音频识别采集,在运行结束时恢复音频识别采集,以避免数据溢出。


2. 解决方法

音频处理速度跟不上音频采集速度时。在音频额外处理期间,停止音频识别采集,在运行结束时恢复音频识别采集。

  • 以为调用audio_op()对音频进行处理为例;

(1)修改 sherpa-ncnn/csrc/alsa.h

  • Alsa 类中,添加暂停和恢复音频采集的功能,即Pause()Resume() 方法。

  • 使用 ALSA 的 snd_pcm_pause 函数来正确暂停和恢复音频采集;

class Alsa {public:// ... code ...// 添加暂停和恢复方法// 使用 ALSA 的 snd_pcm_pause 函数来正确暂停和恢复音频采集void Pause() { snd_pcm_pause(capture_handle_, 1); }void Resume() { snd_pcm_pause(capture_handle_, 0); }// ... code ...
};

(2)修改 sherpa-ncnn/csrc/sherpa-ncnn-alsa.cc

  • 使用暂停和恢复音频采集的功能
// ... code ...while (!stop) {// ... code ...if (is_endpoint) {if (!text.empty()) {++segment_index;alsa.Pause();    // 暂停音频采集audio_op();  // 音频处理操作alsa.Resume();   // 恢复音频采集}recognizer.Reset(s.get());}}

.


声明:资源可能存在第三方来源,若有侵权请联系删除!

http://www.xdnf.cn/news/7440.html

相关文章:

  • Logrotate:配置日志轮转、高效管理Linux日志文件
  • 开发体育比分网站,有哪些坑需要注意的
  • 手搓一个Transformer
  • 以用户为中心的产品才是好产品
  • Kali安装配置JAVA环境和切换JDK版本的最详细的过程
  • BGP综合实验(2)
  • ai agent(智能体)开发 python高级应用7: crawl4ai 0.6.3 加re正则表达式 获取百度中含有 韩立的图片要求横屏图片
  • ts导入vue文件时提示找不到模块或其相应的类型声明问题解决
  • ADVANTEST Q8326光学波长计操作手Operation Manual
  • 升级mysql (rpm安装)
  • MIMO 检测(6)--最大似然检测(1)
  • js逆向反调试的基本 bypass
  • 【C语言】大程序结构
  • Linux详解基本指令(一)
  • 对盒模型的理解
  • 澳大利亚TikTok网络专线+本地化策略:澳洲电商品牌的破局之道
  • 最大子树和--树形dp
  • day30python打卡
  • Rust 学习笔记:关于错误处理的练习题
  • 1-3V升3.2V升压驱动WT7013
  • 反射操作注解的详细说明
  • HTTPS核心机制拆解
  • Windows 如何安装CUDA
  • 【免杀】C2免杀技术(六)进程镂空(傀儡进程)
  • 往现有虚拟环境中增加python3.9.6
  • 万用表如何区分零线、火线、地线
  • 2022年下半年信息系统项目管理师——综合知识真题及答案(3)
  • Pytorch---view()函数
  • 机器人编程基础---C语言中的文件操作
  • SHELL练习题(1-11题)记录(牛客)