【🆓 語音辨識引擎sherpa-onnx CPU上篇】讓您輕鬆體驗語音辨識功能(Docker架設)

更新於 發佈於 閱讀時間約 6 分鐘

還記得我們之前介紹過「【Google Colab Python系列】 初探Whisper: 來一段Youtube影片進行語音辨識吧!」這套語音辨識引擎, 那為什麼我們又要教這一套? 因為我們也可以將whisper的模型轉換成onnx的格式, 輕鬆移植到各種平台, 且效能更佳。


語音辨識的熱門組件之一kaldi, 相信大部分接觸語音辨識的朋友都應該聽過, 而k2顧名思義就是第二代的全新組件, 在接觸kaldi 1的時期時, 許多的腳本搞的烏煙瘴氣, 而k2大部分都使用python程式語言來撰寫, 程式運作起來更有效率也非常有彈性。


而sherpa則是扮演著辨識引擎的角色, 後來主力都著重於發展sherpa-onnx, 因此我們決定來研究一下sherpa-onnx可以怎麼用。

raw-image


對了, 讓我們架設的如此順利又讓您一鍵啟動的最大功臣莫過於「【Docker 容器化】初探微服務時代的虛擬化技術」, 如果您還不知道Docker, 真心建議您好好的學習一番, 它會讓我們減少許多環境建置上的時間成本。


章節重點

本章我們會以Python為主要的程式語言進行示範, 我們會使用Docker來封裝讓各位的環境盡量一致, 避免外部因素干擾學習, 章節重點如下:

raw-image


環境準備


安裝

這邊我們會用pip直接進行安裝, 至於環境的部份請下載我們的「🎁 懶人包」, 裡面會有相關的docker compose配置檔, 讓您一鍵啟動服務, 並透過簡易的幾行指令就能夠完成整個Demo, 非常適合初入語音辨識朋友!

# 安裝套件
pip install sherpa-onnx

# 檢查是否安裝成功
python3 -c "import sherpa_onnx; print(sherpa_onnx.__file__)"



🔥 因此Dockerfile可以這樣撰寫:

raw-image


如何下載模型?

❗ 在這邊您必須決定好要使用offline還是online的模型, 根據您選用的模型搭配相對應的腳本運行, 這邊我們會選用offline模型並示範檔案上傳語音辨識的過程。

預編譯模型可以來這裡找: https://k2-fsa.github.io/sherpa/onnx/pretrained_models/index.html#sherpa-onnx-pre-trained-models

今天我們選用的是: zrjin/sherpa-onnx-zipformer-multi-zh-hans-2023-9-2 (Chinese), 這個版本的模型相對較小, 因此辨識效果可能不佳, 我們僅拿來Demo使用。

cd models

wget <https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-zipformer-multi-zh-hans-2023-9-2.tar.bz2>
tar xvf sherpa-onnx-zipformer-multi-zh-hans-2023-9-2.tar.bz2
rm sherpa-onnx-zipformer-multi-zh-hans-2023-9-2.tar.bz2



下載sherpa-onnx專案

這一步是要讓我們使用該專案內的範例程式碼來架設Web頁面。

git clone <https://github.com/k2-fsa/sherpa-onnx.git>



如何啟動Web服務?

python sherpa-onnx/python-api-examples/non_streaming_server.py \\
--tokens models/sherpa-onnx-zipformer-multi-zh-hans-2023-9-2/tokens.txt \\
--encoder models/sherpa-onnx-zipformer-multi-zh-hans-2023-9-2/encoder-epoch-20-avg-1.onnx \\
--decoder models/sherpa-onnx-zipformer-multi-zh-hans-2023-9-2/decoder-epoch-20-avg-1.onnx \\
--joiner models/sherpa-onnx-zipformer-multi-zh-hans-2023-9-2/joiner-epoch-20-avg-1.onnx \\
--doc-root sherpa-onnx/python-api-examples/web

打開你的瀏覽器並輸入: http://localhost:6006, 試著切換到「Upload」頁籤, 連線後上傳音檔。


🔥 我們的docker compose配置檔

raw-image


P.S 如果覺得操作起來太過於繁瑣的話, 也歡迎直接下載我們的🎁 懶人包, 讓您省去環境的繁雜安裝過程。


接著我們試著上傳一下範例所提供的音檔

raw-image




關於範例程式碼的重點整理

這邊的核心程式碼在「NonStreamingServer」這個類別, 接收、辨識、回傳三大功能皆在此完成, 因此我們針對這裡的程式碼進行解析。

raw-image


🎁 點我立即領取懶人包

我們的懶人包裡面包含了sherpa-onnx CPU版本的架設, 概念展示的範例程式,請您配合本章節的說明一步步的親自操演過一次, 如此一來才能夠更加明確的熟悉整體流程, 進一步掌握sherpa-onnx語音辨識的使用方法。


結語

本章節教您輕鬆開箱語音辨識組件, 而網路上也提供了各式各樣的預訓練模型, 假設我們只想要使用, 那麼我們可以去下載這些模型來掛載, 那如果我們想要自行訓練或者微調, 接下來的篇章我們也會教您如何去進行這些過程, 當我們學會使用也會訓練模型之後, 最重要的就是資料了, 就像我們把飲水器接好, 也會使用冷水熱水之後, 最重要的還是「水」, 它的重要程度就像我們的「資料」, 要如何大量的蒐集這些資料及管控品質就是另外一門學問了, 關於資料處理, 我們也推薦您閱讀以下幾個篇章:

參考資源

留言
avatar-img
留言分享你的想法!
avatar-img
阿Han的沙龍
132會員
300內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
我們在「【語音辨識引擎sherpa-onnx GPU下篇】讓您體驗更快的語音辨識功能」建置環境的過程中預到了這樣的錯誤訊息: RuntimeError: /onnxruntime_src/onnxruntime/core/session/provider_bridge_ort.cc: 1209
Thumbnail
我們在「【語音辨識引擎sherpa-onnx GPU下篇】讓您體驗更快的語音辨識功能」建置環境的過程中預到了這樣的錯誤訊息: RuntimeError: /onnxruntime_src/onnxruntime/core/session/provider_bridge_ort.cc: 1209
Thumbnail
上集回顧 上集我們提到「【語音辨識引擎sherpa-onnx CPU上篇】讓您輕鬆體驗語音辨識功能(Docker架設)」, 相信大家對於sherpa-onnx具備一定的基本概念並學會如何架設了吧! 如果還不會的兄弟姊妹們別擔心, 歡迎底下留言, 我們會盡量的協助您直到學會為止, 那麼雖然CPU版本
Thumbnail
上集回顧 上集我們提到「【語音辨識引擎sherpa-onnx CPU上篇】讓您輕鬆體驗語音辨識功能(Docker架設)」, 相信大家對於sherpa-onnx具備一定的基本概念並學會如何架設了吧! 如果還不會的兄弟姊妹們別擔心, 歡迎底下留言, 我們會盡量的協助您直到學會為止, 那麼雖然CPU版本
Thumbnail
Docker是由GO語言實現,是一個在GitHub上開發原始碼的專案。它的目標是實現羽量級的作業系統虛擬化。讓使用者操作Docker,就像是操作一個羽量級的虛擬機器。 優勢 快速發表和部署 高效的部署和擴充 資源使用率高 管理簡單 核心 Image映像檔 Docker
Thumbnail
Docker是由GO語言實現,是一個在GitHub上開發原始碼的專案。它的目標是實現羽量級的作業系統虛擬化。讓使用者操作Docker,就像是操作一個羽量級的虛擬機器。 優勢 快速發表和部署 高效的部署和擴充 資源使用率高 管理簡單 核心 Image映像檔 Docker
Thumbnail
本文介紹了 Docker 的基礎概念,以及在軟體工程環境中的運用。藉由 Docker 的容器化技術和映像檔技術,能夠實現開發和生產環境的一致性,並且支持負載平衡和無縫更新。此外,也提到了 Kubernetes 和 Docker Swarm 這兩個重要工具的用途和適用對象。
Thumbnail
本文介紹了 Docker 的基礎概念,以及在軟體工程環境中的運用。藉由 Docker 的容器化技術和映像檔技術,能夠實現開發和生產環境的一致性,並且支持負載平衡和無縫更新。此外,也提到了 Kubernetes 和 Docker Swarm 這兩個重要工具的用途和適用對象。
Thumbnail
前言 大家好在先前我們講了什麼是 Docker,Docker 好處有什麼以及怎麼安裝 Docker,今天我們要來開始初體驗 Docker 容器,使用後您會發現 Docker 非常的方便快速 Docker Hub 介紹 首先在開始學怎麼抓取 Docker Image 之前,我們要先來介紹 Doc
Thumbnail
前言 大家好在先前我們講了什麼是 Docker,Docker 好處有什麼以及怎麼安裝 Docker,今天我們要來開始初體驗 Docker 容器,使用後您會發現 Docker 非常的方便快速 Docker Hub 介紹 首先在開始學怎麼抓取 Docker Image 之前,我們要先來介紹 Doc
Thumbnail
前言 上次我們講到 Docker 的功用與好處,今天我們要在講解,如何安裝 Docker 這個容器,讓我們在之後的教學應用更好的實作與練習,現在讓我們開始吧 Docker Engine 與 Docker Desktop 首先在講解怎麼安裝 Docker 時,我們先講解 Docker Engin
Thumbnail
前言 上次我們講到 Docker 的功用與好處,今天我們要在講解,如何安裝 Docker 這個容器,讓我們在之後的教學應用更好的實作與練習,現在讓我們開始吧 Docker Engine 與 Docker Desktop 首先在講解怎麼安裝 Docker 時,我們先講解 Docker Engin
Thumbnail
前言 上次我們對 Docker 架構進行了講解,今天我們來講解 Docker 的好處,他到底可以幫助我們什麼事情 ? 為什麼 Docker 如此受人喜歡 ? 現在就來講述 Docker 有什麼好處 跨平台 Docker 可以確保在不同的作業系統是可運作的,可減少機器運作的問題 版本控制 打
Thumbnail
前言 上次我們對 Docker 架構進行了講解,今天我們來講解 Docker 的好處,他到底可以幫助我們什麼事情 ? 為什麼 Docker 如此受人喜歡 ? 現在就來講述 Docker 有什麼好處 跨平台 Docker 可以確保在不同的作業系統是可運作的,可減少機器運作的問題 版本控制 打
Thumbnail
在開始前,請先至 GitHub 上 Clone 相關資源到環境裡。 $ git clone https://github.com/ml-explore/mlx-examples.git 完成後,進入資料夾 $ cd ./mlx-examples/whisper​ 裡面有以下資源: # wh
Thumbnail
在開始前,請先至 GitHub 上 Clone 相關資源到環境裡。 $ git clone https://github.com/ml-explore/mlx-examples.git 完成後,進入資料夾 $ cd ./mlx-examples/whisper​ 裡面有以下資源: # wh
Thumbnail
相信替影片配字幕是許多人心中的痛,本文帶你在三分鐘內能夠用你的電腦,寫出一個使用AI將聲音轉成字幕srt檔案的互動操作網頁,可以連接麥克風測試,也可以上傳聲音檔案或是MP3來測試。目前的多國語言版本,能自動辨別語言,不用特別指定,經實測,中英文混雜也能夠正確輸出。
Thumbnail
相信替影片配字幕是許多人心中的痛,本文帶你在三分鐘內能夠用你的電腦,寫出一個使用AI將聲音轉成字幕srt檔案的互動操作網頁,可以連接麥克風測試,也可以上傳聲音檔案或是MP3來測試。目前的多國語言版本,能自動辨別語言,不用特別指定,經實測,中英文混雜也能夠正確輸出。
Thumbnail
限時好文,歡迎支持,讓阿Han給你最貼近業界的開發實戰教學… 為什麼不害怕犯錯很重要? 開發的過程中我們最害怕的就是我的程式把系統搞掛了…,這樣一來重新安裝作業系統的成本非常高,包括還原也是,我想這會阻礙我們學習的動力,那究竟有什麼樣的技術能夠讓我們開發的同時也能夠勇於犯錯呢? 答案就是「容器化」
Thumbnail
限時好文,歡迎支持,讓阿Han給你最貼近業界的開發實戰教學… 為什麼不害怕犯錯很重要? 開發的過程中我們最害怕的就是我的程式把系統搞掛了…,這樣一來重新安裝作業系統的成本非常高,包括還原也是,我想這會阻礙我們學習的動力,那究竟有什麼樣的技術能夠讓我們開發的同時也能夠勇於犯錯呢? 答案就是「容器化」
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News