簡(jiǎn)介
Whisper 是 OpenAI 的一項(xiàng)語(yǔ)音處理項(xiàng)目,旨在實(shí)現(xiàn)語(yǔ)音的識(shí)別、翻譯和生成任務(wù)。作為基于深度學(xué)習(xí)的語(yǔ)音識(shí)別模型,Whisper 具有高度的智能化和準(zhǔn)確性,能夠有效地轉(zhuǎn)換語(yǔ)音輸入為文本,并在多種語(yǔ)言之間進(jìn)行翻譯。通過(guò)不斷的優(yōu)化和更新,Whisper 致力于提供更加優(yōu)質(zhì)和高效的語(yǔ)音處理解決方案,以滿足不同場(chǎng)景和需求下的語(yǔ)音交互應(yīng)用。
- 官網(wǎng)地址:https://openai.com/research/whisper
- github 地址:https://github.com/openai/whisper?tab=readme-ov-file
Whisper 的優(yōu)點(diǎn)
Whisper 借助豐富多樣的數(shù)據(jù)集,這些數(shù)據(jù)集中的語(yǔ)音數(shù)據(jù)與互聯(lián)網(wǎng)上的文本記錄相匹配,并結(jié)合了一種名為“注意力機(jī)制”的技術(shù)。這項(xiàng)技術(shù)使得 Whisper 在處理語(yǔ)音時(shí),能夠更加有效地捕捉到語(yǔ)音中的關(guān)鍵信息。
這種綜合運(yùn)用數(shù)據(jù)和先進(jìn)技術(shù)的方式,使得 Whisper 提高了其在各種環(huán)境下的健壯性和準(zhǔn)確性,能夠?qū)崿F(xiàn)更為精確、智能的語(yǔ)音識(shí)別和翻譯,為用戶提供更加出色的語(yǔ)音處理體驗(yàn)。
多任務(wù)
Whisper 并不僅僅是預(yù)測(cè)給定音頻的單詞,雖然這是是語(yǔ)音識(shí)別的核心,但它還包含許多其他附加的功能組件,例如語(yǔ)言活動(dòng)檢測(cè)、說(shuō)話人二值化和逆文本正態(tài)化。
采用 Transformer 序列到序列模型可以實(shí)現(xiàn)針對(duì)不同的語(yǔ)言處理任務(wù)。包括以下幾種:
- 語(yǔ)音識(shí)別
- 語(yǔ)音翻譯
- 口語(yǔ)識(shí)別
- 語(yǔ)音活動(dòng)檢測(cè)
這些任務(wù)的輸出由模型預(yù)測(cè)的令牌序列表示,使得單個(gè)模型可以代替?zhèn)鹘y(tǒng)的語(yǔ)音處理管道中的多個(gè)組件,如下所示:

應(yīng)用
安裝
openai-whisper
openai-whisper 與 python 3.8-3.11 和最新的 PyTorch 版本兼容。
使用 pip 命令安裝:pip install -U openai-whisper
ffmpeg
openai-whisper 需要 ffmpeg 的環(huán)境,ffmpeg 是一個(gè)開(kāi)源的跨平臺(tái)音視頻處理工具和框架,可以用來(lái)錄制、轉(zhuǎn)換和流式傳輸音視頻內(nèi)容 。
官網(wǎng):https://ffmpeg.org/
MAC
安裝:brew install ffmpeg
驗(yàn)證:ffmpeg -version 出現(xiàn)版本信息且無(wú)報(bào)錯(cuò)表示安裝成功。

Windows
- 安裝:進(jìn)入下載鏈接:https://www.gyan.dev/ffmpeg/builds/#release-builds,選擇版本下載安裝:

- 環(huán)境配置:下載解壓完成后,需要將 Ffmpeg 的執(zhí)行文件坐在目錄添加到系統(tǒng)的環(huán)境變量中。

- 驗(yàn)證:在 cmd 中輸入 ffmpeg -version 出現(xiàn)版本信息且無(wú)報(bào)錯(cuò)表示安裝成功。

命令行
# 將音頻的內(nèi)容轉(zhuǎn)為文本,使用base模型whisper demo1.mp3 --model base --task transcribe
命令行常用參數(shù)
| 參數(shù) | 含義 | 默認(rèn) |
|---|---|---|
| --model | 要使用的 Whisper 模型名稱 | small |
| --task | 轉(zhuǎn)錄(transcribe)或翻譯(translate) | transcribe |
| --language | 指定執(zhí)行的語(yǔ)言 | None |
| --temperature | 指定輸出內(nèi)容的相似度 | 0 |
| --output_dir | 指定輸出文件的保存路徑 | . |
Python 代碼
import whisper
# 初始化一個(gè) base 模型
model = whisper.load_model("base")
# 傳入音頻文件,并得到音頻輸出的文本內(nèi)容
res = model.transcribe("demo.mp3")
print(res["text"])
模型調(diào)用
安裝 openai 第三方庫(kù),本篇教程使用 1.16.1 版本的 openai:pip install openai
def test_openai_whisper():
# 初始化OpenAI對(duì)象
client = OpenAI(base_url="xxx",api_key="xxx")
# 打開(kāi)一個(gè)音頻文件
audio_file1 = open("demo1.mp3", 'rb')
audio_file2 = open("demo2.mp3", 'rb')
# 選擇模型,并且轉(zhuǎn)錄音頻的內(nèi)容
res1 = client.audio.transcriptions.create(model="whisper-1", file=audio_file1)
res2 = client.audio.transcriptions.create(model="whisper-1", file=audio_file2)
# 翻譯為英文
res3 = client.audio.translations.create(model="whisper-1", file=audio_file2)
print(f"audio1轉(zhuǎn)錄結(jié)果為:{res1.text}")
print(f"audio2轉(zhuǎn)錄結(jié)果為:{res1.text}")
print(f"audio2翻譯結(jié)果為:{res1.text}")
總結(jié)
- 了解 Whisper 相關(guān)概念。
- 完成環(huán)境安裝。
- 學(xué)會(huì)基礎(chǔ)示例練習(xí)。