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.pswp.cn/pingmian/81520.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81520.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/81520.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Postman一直打不開的解決辦法

Postman 是一款非常流行的開源 API 開發工具,主要用于構建、測試、調試和文檔化應用程序接口(API)。但有時它的性能不會特別穩定,功能限制和擴展性不足;應用于開發、測試、運維等環節,尤其在開發 RESTful A…

問題|對只允許輸入的變量是否進行了更改

“對只允許輸入的變量是否進行了更改”這一問題的核心是:在編程中,某些變量被設計為僅用于輸入(只讀),但在代碼中可能被意外修改,導致潛在錯誤。以下是詳細解釋: 1. 什么是“只允許輸入的變量”…

RPC與SOAP的區別

一.RPC(遠程過程調用)和SOAP(簡單對象訪問協議)均用于實現分布式系統中的遠程通信,但兩者在設計理念、協議實現及應用場景上存在顯著差異。 二.對比 1.設計理念 2.協議規范 3.技術特性 4.典型應用場景 5.總結 三.總結…

c#的內存指針操作(僅用于記錄)

c#也可以直接操作內存指針,如下為示例: unsafe {byte[] a {1,2,3};fixed (byte* p1 a, p2 &a[^1]){Debugger.Log(1, "test", $"max index:{p2-p1}");Debugger.Log(1, "test", $"address:{(long)p1:X}")…

Jsp技術入門指南【十三】基于 JSTL SQL 標簽庫實現 MySQL 數據庫連接與數據分頁展示

Jsp技術入門指南【十三】基于 JSTL SQL 標簽庫實現 MySQL 數據庫連接與數據分頁展示 前言一、回顧SQL標簽的內容1. 什么是JSTL SQL標簽?2.為什么要用SQL標簽?3.第一步:引入SQL標簽庫4. SQL標簽的核心功能:連接數據庫標簽常用屬性&…

羽毛球訂場小程序源碼介紹

基于ThinkPHP、FastAdmin以及UniApp開發的羽毛球訂場小程序源碼,這款小程序旨在為羽毛球愛好者提供便捷的場地預訂服務。 該小程序前端采用UniApp框架開發,具有良好的跨平臺兼容性,可以一鍵發布至iOS和Android平臺,極大地提高了開…

Unreal Engine: Windows 下打包 AirSim項目 為 Linux 平臺項目

環境: Windows: win10, UE4.27, Visual Studio 2022 Community.Linux: 22.04 windows環境安裝教程: 鏈接遇到的問題(問題:解決方案) 點擊Linux打包按鈕,跳轉至網頁而不是執行打包流程:用VS打開項…

SpringBoot 3.x 集成 MyBatisPlus

文章目錄 集成 MyBatisPlus第 1 步:創建 SpringBoot 項目第 2 步:添加 MyBatisPlus 依賴第 3 步:編寫 CRUD 代碼創建 Entity創建 Mapper創建 Service編寫 Controller第 4 步:執行初始化 SQL第 5 步:配置第 6 步:測試測試 ControllerMapper 層單元測試參考?? 目標 1:基…

java基礎-抽象類和抽象方法

1.abstract 可以修飾:類、方法 (1)修飾類: 類不能被實例化; 抽象類一定有構造器,便于子類實例化時調用; (2)修飾方法:抽象方法 只有方法的聲明&#xff…

解決電腦問題(8)——網絡問題

電腦網絡出現問題的原因較為復雜,以下是從網絡連接、網絡配置以及網絡環境等方面的常見問題及解決方法: 網絡連接問題 檢查物理連接:對于有線網絡,檢查網線是否插好,網線有無破損、斷裂等情況。對于無線網絡&#xff…

ubuntu 20.04 ping baidu.coom可以通,ping www.baidu.com不通 【DNS出現問題】解決方案

ping baidu.coom可以通,ping www.baidu.com不通【DNS出現問題】解決方案 檢查IPV6是否有問題 # 1. 檢查 IPv6 地址,記住網絡接口的名稱 ip -6 addr show# 2. 測試本地 IPv6,eth0換成自己的網絡接口名稱 ping6 ff02::1%eth0# 3. 檢查路由 ip…

【AI生成PPT】使用ChatGPT+Overleaf自動生成學術論文PPT演示文稿

【AI生成PPT】使用ChatGPTOverleaf自動生成學術論文PPT演示文稿 文章摘要:使用ChatGPTBeamer自動生成學術論文PPT演示文稿??Beamer??是什么Overleaf編輯工具ChatGPT生成Beamer Latex代碼論文獲取prompt設計 生成結果 文章摘要: 本文介紹了一種高效利…

JVM 垃圾回收器

以下是對主流 JVM 垃圾回收器的詳細解析,涵蓋 一、Serial GC(單線程串行回收器) 二、Parallel GC(吞吐量優先回收器) 三、CMS(Concurrent Mark Sweep,低延遲回收器) 四、G1&…

從零開始學習three.js(21):一文詳解three.js中的矩陣Matrix和向量Vector

一、三維世界的數學基石 在Three.js的三維世界里,所有視覺效果的實現都建立在嚴密的數學基礎之上。其中向量(Vector) 和矩陣(Matrix) 是最核心的數學工具,它們就像構建數字宇宙的原子與分子,支…

ArcGIS Pro 3.4 二次開發 - 內容

環境:ArcGIS Pro SDK 3.4 .NET 8 文章目錄 內容1 工程1.1 創建一個空工程1.2 使用指定名稱創建新工程1.3 使用Pro的默認設置創建新工程1.4 使用自定義模板文件創建新工程1.5 使用 ArcGIS Pro 提供的模板創建工程1.6 打開現有工程1.7 獲取當前工程1.8 獲取當前工程的…

【Python-Day 15】深入探索 Python 字典 (下):常用方法、遍歷、推導式與嵌套實戰

Langchain系列文章目錄 01-玩轉LangChain:從模型調用到Prompt模板與輸出解析的完整指南 02-玩轉 LangChain Memory 模塊:四種記憶類型詳解及應用場景全覆蓋 03-全面掌握 LangChain:從核心鏈條構建到動態任務分配的實戰指南 04-玩轉 LangChai…

31、魔法生物圖鑒——React 19 Web Workers

一、守護神協議(核心原理) 1. 靈魂分裂術(線程架構) // 主組件中初始化Workerconst workerRef useRef(null);?useEffect(() > {workerRef.current new Worker(new URL(./creatureWorker.js, import.meta.url));workerRef.…

Spark SQL 之 Antlr grammar 具體分析

src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBaseLexer.g4 BACKQUOTED_IDENTIFIER: ` ( ~` | `` )* `;src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBaseParser.g4 queryPrimary:

低功耗:XILINX FPGA如何優化功耗?

優化Xilinx FPGA及其外圍電路的功耗需要從硬件設計、軟件配置和系統級優化三個層面綜合考慮。以下是具體的優化策略,涵蓋硬件和軟件方面: 一、硬件層面的功耗優化 選擇低功耗FPGA型號 選擇Xilinx低功耗系列芯片,如7系列中的Artix-7&#xff…

深入理解 ZAB:ZooKeeper 原子廣播協議的工作原理

目錄 ZAB 協議:ZooKeeper 如何做到高可用和強一致?🔒ZAB 協議的核心目標 🎯ZAB 協議的關鍵概念 💡ZAB 協議的運行階段 🎬階段一:Leader 選舉 (Leader Election) 🗳?階段二&#xff…