Abstract:此文章介紹了如何在威聯(lián)通TS-464C2上如何部署OPENAI的whisper模型進(jìn)行語(yǔ)音識(shí)別。實(shí)現(xiàn)把“語(yǔ)音文件上傳到指定目錄下,系統(tǒng)自動(dòng)識(shí)別后輸出TXT到另到一個(gè)目錄里”的功能。(我的其實(shí)是TS-464C,但是我的CPU是N5105,且可以加內(nèi)存,跟464C2一樣。我加了8G內(nèi)存,目前是16G。理論上內(nèi)存只要夠用,不挑機(jī)器,其他型號(hào)應(yīng)該也可以實(shí)現(xiàn)。內(nèi)存不夠用就用小點(diǎn)的模型~~)由于cpu的孱弱,本文選用了Faster-whisper進(jìn)行識(shí)別。確切來(lái)說(shuō)是whisper-ctranslate2項(xiàng)目,想要了解的自己去github翻哈~~我就不介紹了。

優(yōu)點(diǎn):免費(fèi)、識(shí)別率高、什么設(shè)備都可以用。

缺點(diǎn):稍慢。


  1. 安裝linux docker.

    打開(kāi)Container Station, 點(diǎn)容器,點(diǎn)右上角瀏覽,我因?yàn)橛衅渌猛?,所以安裝的LXD的ubuntu系統(tǒng)。其他應(yīng)該也可以,理論上不受系統(tǒng)影響,看各位喜好。

    先在File station里找個(gè)地方新建兩個(gè)目錄,在配置容器的高級(jí)設(shè)置里掛載這個(gè)兩個(gè)目錄,分別用來(lái)存放錄音文件和識(shí)別之后的文本文件。

在威聯(lián)通TS-464C2上搭建語(yǔ)音識(shí)別模型

其他配置無(wú)所謂,如果對(duì)log記錄時(shí)間有要求,就在環(huán)境變量里加上TZ=Asia/Shanghai,否則會(huì)按照格林尼治時(shí)間走。

2.安裝必要的包。啟動(dòng)完上面的ubuntu docker之后,點(diǎn)最右邊的小齒輪,然后點(diǎn)執(zhí)行進(jìn)入到系統(tǒng)中。

在威聯(lián)通TS-464C2上搭建語(yǔ)音識(shí)別模型

默認(rèn)好像沒(méi)有用戶,想建的自己建一個(gè),不想建的可以用root直接搞~

安裝包:pip install -U whisper-ctranslate2

如果沒(méi)有pip,那就裝一個(gè):apt install pip.

去下載模型文件:必須是CTranslate2 format的模型,反正我感覺(jué)large v3 turbo識(shí)別率更好一點(diǎn),速度也可以接受:https://hf-mirror.com/deepdml/faster-whisper-large-v3-turbo-ct2/tree/main 如果內(nèi)存不夠,或者想快點(diǎn),可以用base,small,tiny之類的去hf-mirror上下載就行了。然后把模型放到剛剛共享的/shibie目錄里,我又給它c(diǎn)p到了/usr/faster_whisper_largev3/里。不弄也行,改我后續(xù)的shell文件里執(zhí)行識(shí)別命令的模型目錄即可。

3.測(cè)試。執(zhí)行whisper-ctranslate2 /record/test.mp3 --language Chinese --model_directory /usr/faster_whisper_largev3/ --model large-v3-turbo --device cpu --output_format txt --output_dir /shibie/ 解釋一下這句命令:我的文件在/record目錄下,叫test.mp3;我設(shè)定了識(shí)別的語(yǔ)音是中文,--language那個(gè)不寫也行,會(huì)自動(dòng)檢測(cè);--model_dirctory是目錄地址;--model是你用的模型是什么,比如smallmediumbase需要寫清楚;--device 有GPU可以寫CUDA,咱這個(gè)就乖乖CPU吧;--outpu_format 如果刪了這個(gè)會(huì)默認(rèn)都輸出,srt vtt什么的好幾個(gè),有時(shí)間戳。我只需要txt就行了,看個(gè)人需求設(shè)置。--output_dir /shibie 輸出到/shibie目錄下,可以自行設(shè)置。

whisper-ctranslate2 --help可以幫助你詳細(xì)了解一下這個(gè)東西怎么用。如果命令成功了,那繼續(xù)~

4.自動(dòng)化執(zhí)行。每5分鐘查一下record目錄下是否有新文件,如果有-就識(shí)別一下,輸出到shibie目錄下,并且把原文件挪到/shibie/transed里。

先把上面的需求寫成一個(gè)shell腳本。放到/shibie/起名叫autolarge.sh

以下是我瞎寫的…請(qǐng)大牛們別笑話……

#!/bin/bash

# get date&time.

current_date_time=$(date '+%Y-%m-%d %H:%M:%S')

# check whether new file exists.

if [ -n "$(ls /record)" ]; then

file_name=$(ls /record | head -1)

echo "$file_name">>/shibie/log.txt

file_path="/record/$file_name"

# run the commond!!!

whisper-ctranslate2 "$file_path" --language Chinese --model_directory /usr/faster_whisper_largev3/ --model large-v3-turbo --device cpu --output_format txt --output_dir /shibie/

if [ $? -eq 0 ]; then

mv "$file_path" "/shibie/transed/"

echo "$current_date_time - File has been processed and moved.">> /shibie/log.txt

else

echo "$current_date_time - Erro processing $file_name" >> /shibie/log.txt

fi

else echo "$current_date_time - No new audio file.">> /shibie/log.txt

fi

執(zhí)行crontab -e,最下面添加一行*/5 * * * * sh /shibie/autolarge.sh

cat /shibie/log.txt看看5分鐘后有沒(méi)有日志生成。

在威聯(lián)通TS-464C2上搭建語(yǔ)音識(shí)別模型

作者聲明本文無(wú)利益相關(guān),歡迎值友理性交流,和諧討論~

,

聲明:本站所有文章,如無(wú)特殊說(shuō)明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個(gè)人或組織,在未征得本站同意時(shí),禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺(tái)。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。