主流Python語(yǔ)音轉(zhuǎn)文字(STT)庫(kù)實(shí)戰(zhàn)指南
前言
語(yǔ)音轉(zhuǎn)文字(STT,Speech to Text)是人機(jī)交互、音視頻處理、智能客服等領(lǐng)域的核心技術(shù),Python 憑借生態(tài)豐富、易用性強(qiáng)的優(yōu)勢(shì),成為 STT 開(kāi)發(fā)的主流語(yǔ)言。當(dāng)下各類 Python STT 庫(kù)百花齊放,既有開(kāi)箱即用、輕量化的本地識(shí)別庫(kù),也有對(duì)接大廠接口、高精度的云端識(shí)別工具,還涵蓋了兼顧速度與準(zhǔn)確率的開(kāi)源模型類庫(kù),適配個(gè)人開(kāi)發(fā)、企業(yè)級(jí)項(xiàng)目等不同場(chǎng)景。本文將聚焦 Python 生態(tài)中常用、成熟、高實(shí)用性的 STT 語(yǔ)音識(shí)別庫(kù),從功能特性、識(shí)別精度、部署成本、適用場(chǎng)景等維度展開(kāi)盤(pán)點(diǎn),為開(kāi)發(fā)者選型提供清晰參考。
1 PaddleSpeech
PaddleSpeech 是百度飛槳開(kāi)源的語(yǔ)音交互工具集,主打中文語(yǔ)音識(shí)別 / 合成能力,依托飛槳框架的高性能計(jì)算優(yōu)勢(shì),在中文普通話、低音質(zhì)音頻識(shí)別場(chǎng)景下表現(xiàn)優(yōu)異,且支持私有化部署,是企業(yè)級(jí)中文 STT 場(chǎng)景的首選方案之一。

1.1 安裝步驟
安裝命令:
conda create -n paddlespeech python=3.10 conda activate paddlespeech python -m pip install paddlepaddle-gpu==3.2.2 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/ # 安裝paddlespeech git clone https://github.com/PaddlePaddle/PaddleSpeech.git cd PaddleSpeech pip install pytest-runner pip install .
注:如果這里沒(méi)有n卡,這里修改成pip install paddlepaddle,具體安裝選擇可以看官網(wǎng):PaddlePaddle
我這里之所以使用源碼編譯的方式去安裝,是因?yàn)橹苯邮褂胮ip安裝會(huì)有很多bug。
1.2 測(cè)試代碼
import paddle from paddlespeech.cli.asr import ASRExecutor asr_executor = ASRExecutor() text = asr_executor(audio_file="test.wav", model="conformer_aishell") print(text)
1.3 遇到的報(bào)錯(cuò)
ERROR: Could not find a version that satisfies the requirement opencc==1.1.6 (from paddlespeech) (from versions: 0.1, 0.2, 1.1.0.post1, 1.1.1, 1.1.7, 1.1.8, 1.1.9) ERROR: No matching distribution found for opencc==1.1.6
直接去PaddleSpeech/setup.py下面修改opencc安裝版本:

2 whisper
Whisper 是 OpenAI 開(kāi)源的多語(yǔ)言語(yǔ)音識(shí)別模型,憑借海量多語(yǔ)言音頻數(shù)據(jù)訓(xùn)練,支持 99 種語(yǔ)言識(shí)別,中文普通話識(shí)別準(zhǔn)確率≈95%,且抗噪能力強(qiáng),是個(gè)人開(kāi)發(fā)、多語(yǔ)言場(chǎng)景的首選方案。

2.1 安裝命令
conda create -n whisper_env python=3.10 conda activate whisper_env pip install -U openai-whisper
2.2 測(cè)試代碼
import whisper
model = whisper.load_model("turbo")
result = model.transcribe("audio.mp3")
print(result["text"])
如下圖所示,load_model時(shí),可選參數(shù)為:

3 FunASR
FunASR 是阿里云通義實(shí)驗(yàn)室開(kāi)源的語(yǔ)音識(shí)別框架,主打中文及方言識(shí)別,在 30 + 中文方言、低音質(zhì)音頻場(chǎng)景下表現(xiàn)領(lǐng)先,是中文專屬 STT 場(chǎng)景的最優(yōu)選擇。

3.1 安裝步驟
conda create -n funasr python=3.10 conda activate funasr pip3 install -U funasr pip3 install -U modelscope huggingface_hub pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 --index-url https://download.pytorch.org/whl/cu118
3.2 測(cè)試代碼
from funasr import AutoModel
from funasr.utils.postprocess_utils import rich_transcription_postprocess
model_dir = "iic/SenseVoiceSmall"
model = AutoModel(
model=model_dir,
vad_model="fsmn-vad",
vad_kwargs={"max_single_segment_time": 30000},
device="cuda:0",
)
# en
res = model.generate(
input=f"test.mp3",
cache={},
language="auto", # "zn", "en", "yue", "ja", "ko", "nospeech"
use_itn=True,
batch_size_s=60,
merge_vad=True, #
merge_length_s=15,
)
text = rich_transcription_postprocess(res[0]["text"])
print(text)
3.3 遇到的錯(cuò)誤
UnboundLocalError: local variable 'AutoTokenizer' referenced before assignment
報(bào)錯(cuò)原因: transformers 庫(kù)版本過(guò)低或未安裝,導(dǎo)致模型加載時(shí)無(wú)法找到 AutoTokenizer 類。
解決辦法: 升級(jí) transformers 庫(kù)pip install -U transformers
AssertionError: FunASRNano is not registered
報(bào)錯(cuò)原因: FunASR 版本過(guò)低,未注冊(cè) FunASRNano 模型類,常見(jiàn)于使用 Fun-ASR-Nano 系列模型時(shí)。
解決辦法: 手動(dòng)導(dǎo)入模型類from funasr.models.fun_asr_nano.model import FunASRNano

Loading remote code failed: model, No module named 'model'...OSError: Error no file named pytorch_model.bin, model.safetensors, tf_model.h5, model.ckpt.index or flax_model.msgpack found in directory xxx
報(bào)錯(cuò)原因: FunAudioLLM/Fun-ASR-Nano-251 模型適配性較差,遠(yuǎn)程代碼加載失敗或權(quán)重文件下載不完整。
解決辦法: 替換為 FunASR 官方穩(wěn)定支持的模型(如 iic/SenseVoiceSmall、paraformer-large),避免使用適配性不足的 Nano 系列模型。
總結(jié)
本文盤(pán)點(diǎn)了 Python 生態(tài)中三大主流 STT 庫(kù):PaddleSpeech 適配飛槳生態(tài),適合企業(yè)級(jí)中文通用場(chǎng)景;Whisper 主打多語(yǔ)言識(shí)別,易用性拉滿,適配個(gè)人開(kāi)發(fā);FunASR 在中文方言識(shí)別領(lǐng)域優(yōu)勢(shì)顯著,適合中文專屬場(chǎng)景。實(shí)際開(kāi)發(fā)中,個(gè)人 / 多語(yǔ)言場(chǎng)景優(yōu)先選 Whisper,中文方言 / 企業(yè)級(jí)場(chǎng)景優(yōu)先選 FunASR,飛槳生態(tài)項(xiàng)目可選用 PaddleSpeech。開(kāi)發(fā)時(shí)需注意版本適配與依賴管理,遇到問(wèn)題可優(yōu)先通過(guò)升級(jí)庫(kù)或替換模型解決,確保識(shí)別效果與穩(wěn)定性。
到此這篇關(guān)于主流Python語(yǔ)音轉(zhuǎn)文字(STT)庫(kù)實(shí)戰(zhàn)指南的文章就介紹到這了,更多相關(guān)Python語(yǔ)音轉(zhuǎn)文字(STT)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python進(jìn)程間通訊與進(jìn)程池超詳細(xì)講解
進(jìn)程彼此之間互相隔離,要實(shí)現(xiàn)進(jìn)程間通信(IPC),multiprocessing模塊主要通過(guò)隊(duì)列方式,隊(duì)列:隊(duì)列類似于一條管道,元素先進(jìn)先出,需要注意的一點(diǎn)是:隊(duì)列都是在內(nèi)存中操作,進(jìn)程退出,隊(duì)列清空,另外,隊(duì)列也是一個(gè)阻塞的形態(tài)2022-12-12
Python測(cè)試網(wǎng)絡(luò)連通性示例【基于ping】
這篇文章主要介紹了Python測(cè)試網(wǎng)絡(luò)連通性,結(jié)合實(shí)例形式分析了Python通過(guò)發(fā)送ping請(qǐng)求測(cè)試網(wǎng)絡(luò)連通性相關(guān)操作技巧,需要的朋友可以參考下2018-08-08
Python實(shí)現(xiàn)自定義包的實(shí)例詳解
這篇文章主要介紹了實(shí)現(xiàn)自定義包的方法,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12
python報(bào)錯(cuò): ''list'' object has no attribute ''shape''的解決
這篇文章主要介紹了python報(bào)錯(cuò): 'list' object has no attribute 'shape'的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
Python讀取中文路徑出現(xiàn)亂碼的問(wèn)題解決
本文主要介紹了Python讀取中文路徑出現(xiàn)亂碼的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06
Django objects的查詢結(jié)果轉(zhuǎn)化為json的三種方式的方法
這篇文章主要介紹了Django objects的查詢結(jié)果轉(zhuǎn)化為json的三種方式的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
pandas 將list切分后存入DataFrame中的實(shí)例
今天小編就為大家分享一篇pandas 將list切分后存入DataFrame中的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Python?Decorator的設(shè)計(jì)模式演繹過(guò)程解析
本文主要梳理了Python?decorator的實(shí)現(xiàn)思路,解釋了為什么Python?decorator是現(xiàn)在這個(gè)樣子,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
python自然語(yǔ)言編碼轉(zhuǎn)換模塊codecs介紹
這篇文章主要介紹了python自然語(yǔ)言編碼轉(zhuǎn)換模塊codecs介紹,codecs專門(mén)用作編碼轉(zhuǎn)換,通過(guò)它的接口是可以擴(kuò)展到其他關(guān)于代碼方面的轉(zhuǎn)換,需要的朋友可以參考下2015-04-04

