柚子快報(bào)激活碼778899分享:使用FunASR處理語音識別
柚子快報(bào)激活碼778899分享:使用FunASR處理語音識別
FunASR是阿里的一個語音識別工具,比SpeechRecognition功能多安裝也很簡單;
官方介紹:FunASR是一個基礎(chǔ)語音識別工具包,提供多種功能,包括語音識別(ASR)、語音端點(diǎn)檢測(VAD)、標(biāo)點(diǎn)恢復(fù)、語言模型、說話人驗(yàn)證、說話人分離和多人對話語音識別等。FunASR提供了便捷的腳本和教程,支持預(yù)訓(xùn)練好的模型的推理與微調(diào)。
網(wǎng)址:FunASR/README_zh.md at main · alibaba-damo-academy/FunASR · GitHub
安裝直接用:pip install funasr ?-i https://pypi.tuna.tsinghua.edu.cn/simple
讀取音頻需要(我沒ffmpeg):pip install torchaudio ?-i https://pypi.tuna.tsinghua.edu.cn/simple
官網(wǎng)說:如果需要使用工業(yè)預(yù)訓(xùn)練模型,安裝modelscope(可選)pip install modelscope ?-i https://pypi.tuna.tsinghua.edu.cn/simple
如果按照官網(wǎng)的代碼直接使用model名,第一次使用這個model時,會自動下載對應(yīng)的model,會在C:\Users\你的用戶名\.cache目錄里新建modelscope文件夾,將所用到的model下載到里面;
model = AutoModel(model="paraformer-zh", vad_model="fsmn-vad", punc_model="ct-punc",
# spk_model="cam++"
)
所用到的model會在/modelscope/hub/iic/目錄里找到,可以拷貝出來使用,代碼里直接指定model目錄;
也可以自己去他們網(wǎng)站下載model拿來用:FunASR/model_zoo at main · alibaba-damo-academy/FunASR · GitHub
model直接搞出來用:
語音轉(zhuǎn)文字demo:
#!/usr/bin/env python3
# coding = utf-8
"""
# Project: workspace_py
# File: test_funasr.py
# Author: XWF
# Time: 2024/4/15 16:14
"""
from funasr import AutoModel
print('test')
model_path = 'models/modelscope/hub/iic/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch'
vad_path = 'models/modelscope/hub/iic/speech_fsmn_vad_zh-cn-16k-common-pytorch'
punc_path = 'models/modelscope/hub/iic/punc_ct-transformer_zh-cn-common-vocab272727-pytorch'
model = AutoModel(model=model_path, # model_revision="v2.0.4",
vad_model=vad_path, # vad_model_revision="v2.0.4", vad_kwargs={},
punc_model=punc_path, # punc_model_revision="v2.0.4", punc_kwargs={},
# device='cuda:0',
device='cpu',
ncpu=4,
# spk_model="cam++", spk_model_revision="v2.0.4",
disable_log=True,
disable_pbar=True
)
res = model.generate(input='test_24000_16.wav', batch_size_s=300)
print(res)
print(type(res), type(res[0]), res[0].get('text'))
# res = model.generate(input='test_8000_16.pcm', batch_size_s=300)
# print(res)
# print(res[0].get('text'))
with open('test_24000_16.wav', 'rb') as f:
wav_data = f.read()
res = model.generate(input=wav_data,batch_size_s=1)
print(res)
with open('test_8000_16.pcm', 'rb') as f:
pcm_data = f.read()
res = model.generate(input=pcm_data, batch_size_s=1)
print(res)
運(yùn)行結(jié)果:
弄到model后直接使用model目錄指定model就行,不用再下載了,也不用指定版本;
也可以使用各個model_version指定版本,下載的時候會使用指定的版本下載;
在AutoModel里使用disable_log=True和disable_pbar=True可以關(guān)閉那些紅紅的打印日志,不然滿屏幕就會這樣:
但是不知道input='test_8000_16.pcm'為啥老是找不到文件報(bào)錯,跑不通,設(shè)置了fs好像也不行;
官網(wǎng)還有許多其他的功能可以去看看;
關(guān)于input直接用wav文件正確,但用wav的bytes就識別不對的問題,我去GitHup提問有人告訴我直接使用wav文件,會識別wav頭重新調(diào)整采樣率等信息,而使用bytes不會重新采樣,所以使用非16k的會識別錯誤,得到的方法大概就是換用8k的模型,或者設(shè)置采樣率參數(shù);
但是設(shè)置的fs參數(shù)可能需要自己調(diào),好像也不一定就直接是采樣率,可能跟別的有關(guān);
柚子快報(bào)激活碼778899分享:使用FunASR處理語音識別
文章來源
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。