從零實現本地語音識別(FunASR)

FunASR 是達摩院開源的綜合性語音處理工具包,提供語音識別(ASR)、語音活動檢測(VAD)、標點恢復(PUNC)等全流程功能,支持多種主流模型(如 Paraformer、Whisper、SenseVoice)的推理、微調和部署。

1. funasr 安裝

pip install funasr


2. 模型下載

pip install modelscope
modelscope download --model iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch


3. 依賴庫安裝

pip install torch torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install addict, datasets -i https://pypi.tuna.tsinghua.edu.cn/simple

4. 模式一:使用本地模型

4.1 程序編碼(本地模型)

from funasr import AutoModel
model = AutoModel(
    model="./speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch",
    disable_update=True,
    device="cpu"  # 或 "cuda" 如果有GPU
)    
res = model.inference(input="asr_example.wav")
print("識別結果:", res[0]["text"])

4.2. 運行測試(本地模型)

5. 模式二:運行時自動下載模型

5.1 程序編碼(運行時下載模型)

from funasr import AutoModel
model = AutoModel(
    model="paraformer-zh",
    disable_update=True,
    device="cpu"  # 或 "cuda" 如果有GPU
)    
res = model.inference(input="asr_example.wav")
print("識別結果:", res[0]["text"])

5.2 運行測試(運行時下載模型)

下載後,第二次執行則不再下載,但程序啓動會檢查。

6. 模式三:指定活動檢測等子模型

6.1 程序編碼(指定子模型)

from funasr import AutoModel
model = AutoModel(
    model="paraformer-zh",
    model_revision="v2.0.4",
    vad_model="fsmn-vad",
    punc_model="ct-punc",
    disable_update=True,
    device="cpu"  # 或 "cuda" 如果有GPU
)    
res = model.inference(input="asr_example.wav")
print("識別結果:", res[0]["text"])

6.2 運行測試(指定子模型)

7. 模式四:使用 generate 方法

7.1 程序編碼(使用 generate)

from funasr import AutoModel
import soundfile as sf
model = AutoModel(
    model="paraformer-zh",
    model_revision="v2.0.4",
    vad_model="fsmn-vad",
    punc_model="ct-punc",
    disable_update=True,
    device="cpu"  # 或 "cuda" 如果有GPU
)    
waveform, _ = sf.read("asr_example.wav")
result = model.generate(input=waveform)
print("識別結果:", result[0]["text"])

7.2 運行測試(使用 generate)

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/YhxxF--9mx-6pJ_2Ry0i9w