java使用CMU sphinx語音識別

java使用CMU sphinx語音識別

    • 一、pom依賴
      • 1、依賴dependency
      • 2、配置倉庫repository
    • 二、下載中文資源包
      • 1、下載中文資源包(需要其他語言的選擇對應的文件夾即可),中文選擇Mandarin
      • 2、將下載后的文件放到項目中
      • 3、代碼-識別wav語音文件
      • 4、代碼-識別實時輸入(本地pc未成功)
        • 4.1 測試端需要有語音輸入設備

一、pom依賴

1、依賴dependency

        <!-- CMUSphinx Core Library --><dependency><groupId>edu.cmu.sphinx</groupId><artifactId>sphinx4-core</artifactId><version>5prealpha-SNAPSHOT</version></dependency><!-- CMUSphinx Data Library --><dependency><groupId>edu.cmu.sphinx</groupId><artifactId>sphinx4-data</artifactId><version>5prealpha-SNAPSHOT</version></dependency>

2、配置倉庫repository

        <repository><id>snapshots-repo</id><url>https://oss.sonatype.org/content/repositories/snapshots</url><releases><enabled>false</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository>

二、下載中文資源包

進入sourceforge網站下載
點擊菜單Files,其中Acoustic and Language Models是語言資源包文件夾,下面還有sphinx不同版本的源碼,源碼中默認只包含英文資源包。
sphinx的files列表
在這里插入圖片描述

1、下載中文資源包(需要其他語言的選擇對應的文件夾即可),中文選擇Mandarin

在這里插入圖片描述
在這里插入圖片描述

2、將下載后的文件放到項目中

解壓后的文件
在這里插入圖片描述
在這里插入圖片描述

3、代碼-識別wav語音文件

好像只能識別wav格式的文件,m4a試了不行,可以自行嘗試看下結果

    public static void speechToTxt2() throws Exception {// 1、配置Configuration conf = new Configuration();conf.setAcousticModelPath("resource:/sphinx/zh/zh_cn.cd_cont_5000");conf.setDictionaryPath("resource:/sphinx/zh/zh_cn.dic");conf.setLanguageModelPath("resource:/sphinx/zh/zh_cn.lm.bin");System.out.println("Loading models...");//        conf.setAcousticModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us");
//        conf.setDictionaryPath("resource:/edu/cmu/sphinx/models/en-us/cmudict-en-us.dict");Context context = new Context(conf);context.setLocalProperty("decoder->searchManager", "allphoneSearchManager");Recognizer recognizer = context.getInstance(Recognizer.class);InputStream stream = ParseUtil.class.getResourceAsStream("/sphinx/wav/2.wav");stream.skip(44);// Simple recognition with generic modelrecognizer.allocate();context.setSpeechSource(stream, TimeFrame.INFINITE);Result result;while ((result = recognizer.recognize()) != null) {SpeechResult speechResult = new SpeechResult(result);System.out.format("Hypothesis: %s\n", speechResult.getHypothesis());System.out.println("List of recognized words and their times:");for (WordResult r : speechResult.getWords()) {System.out.println(r);}//            System.out.println("Lattice contains "
//                    + speechResult.getLattice().getNodes().size() + " nodes");}recognizer.deallocate();}

輸出結果如圖
其中 Hypothesis: SIL uu o2 c j ie1 r ou3 s r ou3 x r ou1 o2 SIL 就是需要訓練的內容。
我們下載的資源文件zh_cn.dic中有已經簡單訓練的結果
在這里插入圖片描述
在這里插入圖片描述

4、代碼-識別實時輸入(本地pc未成功)

調用時,系統能檢測到在使用麥克風。但在recognizer.getResult()這行總是會報溢出錯誤,也有可能是輸入的設備不支持,各位可以自行嘗試。有結果可以評論學習一下,感謝。

    public static void speechToTxt() throws Exception {// 1、配置Configuration conf = new Configuration();conf.setAcousticModelPath("resource:/sphinx/zh/zh_cn.cd_cont_5000");conf.setDictionaryPath("resource:/sphinx/zh/zh_cn.dic");conf.setLanguageModelPath("resource:/sphinx/zh/zh_cn.lm.bin");// 2、語音識別器LiveSpeechRecognizer recognizer = new LiveSpeechRecognizer(conf);// 2.1 開始識別recognizer.startRecognition(true);// 2.2 識別結果SpeechResult result;while ((result = recognizer.getResult()) != null) {System.out.println(result.getHypothesis());}// 2.3 停止識別recognizer.stopRecognition();}
4.1 測試端需要有語音輸入設備

設置-系統-聲音-輸入輸入配置中需要有輸入設備,測試麥克風可以查看此設備是否可用
在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/81424.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/81424.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/81424.shtml

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

相關文章

企業內訓|智能駕駛與智能座艙技術——某汽車廠商

4月25日&#xff0c;東北某市&#xff0c;TsingtaoAI團隊為某汽車廠商的智能駕駛業務和研發團隊交付“智能駕駛與智能座艙技術”課程。本課程系統講解智能汽車兩大核心領域技術架構與實現路徑。課程涵蓋智能駕駛感知層&#xff08;激光雷達/毫米波雷達/視覺融合&#xff09;、決…

【數學建模國獎速成系列】優秀論文繪圖復現代碼(二)

文章目錄 國獎論文繪圖復現代碼&#xff0c;可直接運行柱狀圖橫向柱狀圖分組柱狀圖堆疊柱狀圖堆疊柱狀圖2三維柱狀圖完整復現代碼 國獎論文繪圖復現代碼&#xff0c;可直接運行 數模比賽的繪圖是非常重要得&#xff0c;這篇文章給大家分享我自己復現的國獎優秀論文的代碼&…

GitLab CVE-2024-12444 安全漏洞解決方案

本文分享極狐GitLab 補丁版本 17.11.1, 17.10.5, 17.9.7 的詳細內容。這幾個版本包含重要的缺陷和安全修復代碼&#xff0c;我們強烈建議所有私有化部署用戶應該立即升級到上述的某一個版本。對于極狐GitLab SaaS&#xff0c;技術團隊已經進行了升級&#xff0c;無需用戶采取任…

隨機微分方程(SDE):股票價格模型、利率模型的構建

隨機微分方程&#xff08;SDE&#xff09;&#xff1a;股票價格模型、利率模型的構建 一、隨機微分方程&#xff08;SDE&#xff09;基礎&#xff1a;從確定性到隨機性的擴展 1. 定義與一般形式 隨機微分方程&#xff08;SDE&#xff09;是包含布朗運動&#xff08;隨機項&am…

【MCP Node.js SDK 全棧進階指南】高級篇(1):MCP多服務器協作架構

隨著業務規模的不斷擴大和系統復雜度的提升,單一服務器架構往往無法滿足高并發、高可用性和彈性擴展的需求。在MCP生態系統中,多服務器協作架構成為構建大規模應用的必然選擇。本文將深入探討MCP TypeScript-SDK在多服務器環境下的部署、協作和管理,以及如何構建高可用、高性…

git 修改用戶名和郵箱

在 Git 中修改用戶名和郵箱地址是常見的任務&#xff0c;這可以確保你的提交記錄使用正確的身份信息。你可以通過簡單的命令來完成這一操作。 全局配置 修改全局用戶名 要修改全局的用戶名&#xff0c;請執行以下命令&#xff1a; git config --global user.name "New…

[算法學習]——通過RMQ與dfs序實現O(1)求LCA(含封裝板子)

每周五篇博客&#xff1a;&#xff08;3/5&#xff09; 碎碎念 其實不是我想多水一篇博客&#xff0c;本來這篇是歐拉序的博客&#xff0c;結果dfs序也是可以O1求lca的&#xff0c;而且常數更優&#xff0c;結果就變成這樣了。。。 前置知識 [算法學習]——dfs序 思想 分…

spark local模式

Spark Local 模式是一種在單臺機器上運行 Spark 應用程序的模式&#xff0c;無需搭建分布式集群&#xff0c;適合開發調試、學習以及運行小規模數據處理任務。以下為你詳細介紹該模式&#xff1a; 特點 簡易性&#xff1a;無需額外配置分布式集群&#xff0c;在單機上就能快速…

用 RxSwift 實現 UITableView 的響應式綁定(超實用示例)

目錄 前言 一、環境準備 1.安裝 RxSwift 和 RxCocoa 2.導入模塊 二、實現一個簡單的UITableView 1.實現一個簡單的 UITableView 1.實現步驟 1.我們聲明一個ViewModel 2.ViewModel和UITableView 綁定 2.實現 UITableView 的代理方法 三、處理點擊事件 前言 在 iOS 開發…

【C++】通過紅黑樹封裝map和set

前言&#xff1a; 通過之前的學習&#xff0c;我們已經學會了紅黑樹和map、set。這次我們要實現自己的map和set&#xff0c;對&#xff0c;使用紅黑樹進行封裝&#xff01; 當然&#xff0c;紅黑樹內容這里就不在贅述&#xff0c;我們會復用紅黑樹的代碼&#xff0c;所以先將…

非凸科技受邀出席AI SPARK活動,共探生成式AI驅動金融新生態

4月19日&#xff0c;由AI SPARK社區主辦的“生成式AI創新與應用構建”主題沙龍在北京舉行。活動聚焦生成式AI的技術突破與產業融合&#xff0c;圍繞大模型優化、多模態應用、存內計算等前沿議題展開深度探討。非凸科技受邀出席并發表主題演講&#xff0c;深入解析金融垂直大模型…

【Java IO流】IO流詳解

參考筆記&#xff1a;【Java基礎-3】吃透Java IO&#xff1a;字節流、字符流、緩沖流_javaio-CSDN博客 目錄 1.IO流簡介 1.1 什么是IO流&#xff1f; 1.2 IO流的分類 1.3 字符流和字節流的其他區別 1.4 Java IO流體系圖 2.字符編碼詳解 3. Java的char類型與 Unicode、U…

驅動開發系列56 - Linux Graphics QXL顯卡驅動代碼分析(三)顯示模式設置

一:概述 如之前介紹,在qxl_pci_probe 中會調用 qxl_modeset_init 來初始化屏幕分辨率和刷新率,本文詳細看下 qxl_modeset_init 的實現過程。即QXL設備的顯示模式設置,是如何配置CRTC,Encoder,Connector 的以及創建和更新幀緩沖區的。 二:qxl_modeset_init 分析 in…

Vue3開發常見性能問題知多少

文章目錄 1 常見性能優化瓶頸及原因1.1 響應式數據的過度使用1.2 虛擬 DOM 的頻繁更新1.3 組件渲染的冗余1.4 大列表渲染的性能問題1.5 計算屬性和偵聽器的濫用1.6 事件處理函數的頻繁綁定1.7 異步組件的加載性能2 解決方案與優化技巧2.1 合理使用響應式數據2.2 優化虛擬 DOM 更…

Rust Ubuntu下編譯生成環境win程序踩坑指南

前言&#xff1a; 1&#xff0c;公司要給一線搞一個升級程序&#xff0c;需要在win下跑。 之前都是找開發總監幫忙&#xff0c;但是他最近比較忙。就讓我自己搞。有了下文.。說來慚愧&#xff0c;之前寫過一篇ubuntu下編譯windows的文章。里面的demo就一句話 fuck world。依賴…

openharmony 4.1 運行busybox工具包(保姆教程)

1.下載 鏈接&#xff1a;Index of /downloads/binaries 進入其中后&#xff0c;找到 挑選適合你系統架構的版本&#xff0c;例如我這邊是 https://busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/busybox-armv7r 右鍵復制鏈接 打開迅雷&#xff0c;直接粘…

算法四 習題 1.3

數組實現棧 #include <iostream> #include <vector> #include <stdexcept> using namespace std;class MyStack { private:vector<int> data; // 用于存儲棧元素的數組public:// 構造函數MyStack() {}// 入棧操作void push(int val) {data.push_back…

GD32F407單片機開發入門(十七)內部RTC實時時鐘及實戰含源碼

文章目錄 一.概要二.RTC基本特點三.GD32單片機RTC內部結構圖四.配置一個RTC走秒例程五.工程源代碼下載六.小結 一.概要 RTC&#xff08;Real-Time Clock&#xff09;是一種用于追蹤和記錄實際時間的時鐘系統。RTC模塊提供了一個包含日期&#xff08;年/月/日&#xff09;和時間…

新能源汽車運動控制器核心芯片選型與優化:MCU、DCDC與CANFD協同設計

摘要&#xff1a;隨著新能源汽車產業的迅猛發展&#xff0c;汽車運動控制器的性能和可靠性面臨著更高的要求。本文深入探討了新能源汽車運動控制器中MCU&#xff08;微控制單元&#xff09;、DCDC電源管理芯片和CANFD總線通信芯片的選型要點、優化策略及其協同設計方案。通過綜…

2.maven 手動安裝 jar包

1.背景 有的時候&#xff0c;maven倉庫無法下載&#xff0c;可以手動安裝。本文以pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar為例。 2.預先準備 下載文件到本地指定位置。 2.1.安裝pom mvn install:install-file \-Dfile/home/wind/tmp/pentaho-aggdesigner-5.1.5-jh…