柚子快報激活碼778899分享:介紹 Whisper 模型
柚子快報激活碼778899分享:介紹 Whisper 模型
介紹 Whisper 模型
Whisper 是一個通用的語音識別模型。它在大規(guī)模多樣化的音頻數據集上進行訓練,并且能夠執(zhí)行多任務處理,包括多語言語音識別、語音翻譯和語言識別。
核心方法
Whisper 使用的是 Transformer 序列到序列模型,訓練于多種語音處理任務。這些任務包括多語言語音識別、語音翻譯、口語語言識別和語音活動檢測。這些任務被聯(lián)合表示為解碼器需要預測的一系列標記,這樣一個模型可以取代傳統(tǒng)語音處理管道中的多個階段。多任務訓練格式使用了一組特殊標記,作為任務說明符或分類目標。
環(huán)境設置
我們使用 Python 3.9.9 和 PyTorch 1.10.1 來訓練和測試我們的模型,但代碼庫預計兼容 Python 3.8-3.11 和最新的 PyTorch 版本。代碼庫還依賴于幾個 Python 包,最顯著的是 OpenAI’s tiktoken 用于快速分詞實現。
安裝或更新 Whisper 最新版本的命令:
pip install -U openai-whisper
或者,以下命令將拉取并安裝該倉庫的最新提交以及其 Python 依賴項:
pip install git+https://github.com/openai/whisper.git
更新包到最新版本的命令:
pip install --upgrade --no-deps --force-reinstall git+https://github.com/openai/whisper.git
還需要在系統(tǒng)上安裝命令行工具 ffmpeg,可以從大多數包管理器中獲?。?/p>
# 在 Ubuntu 或 Debian 上
sudo apt update && sudo apt install ffmpeg
# 在 Arch Linux 上
sudo pacman -S ffmpeg
# 在 MacOS 上使用 Homebrew (https://brew.sh/)
brew install ffmpeg
# 在 Windows 上使用 Chocolatey (https://chocolatey.org/)
choco install ffmpeg
# 在 Windows 上使用 Scoop (https://scoop.sh/)
scoop install ffmpeg
可能還需要安裝 rust,以防 tiktoken 未提供適用于你平臺的預構建輪子。如果在上述 pip install 命令期間看到安裝錯誤,請按照 Getting started page 安裝 Rust 開發(fā)環(huán)境。另外,可能需要配置 PATH 環(huán)境變量,例如 export PATH="$HOME/.cargo/bin:$PATH"。如果安裝失敗并提示 No module named 'setuptools_rust',需要安裝 setuptools_rust,例如運行:
pip install setuptools-rust
可用模型和語言
Whisper 提供五種模型尺寸,四種具有僅英文版本,提供速度和準確性之間的權衡。以下是可用模型的名稱及其近似內存需求和相對于大模型的推理速度;實際速度可能因多種因素(包括可用硬件)而有所不同。
SizeParametersEnglish-only modelMultilingual modelRequired VRAMRelative speedtiny39 Mtiny.entiny~1 GB~32xbase74 Mbase.enbase~1 GB~16xsmall244 Msmall.ensmall~2 GB~6xmedium769 Mmedium.enmedium~5 GB~2xlarge1550 MN/Alarge~10 GB1x
針對僅英文應用的 .en 模型通常表現更好,特別是 tiny.en 和 base.en 模型。對于 small.en 和 medium.en 模型,這種差異變得不太顯著。
Whisper 的性能因語言而異。下圖展示了 large-v3 和 large-v2 模型按語言劃分的性能,使用 WERs(詞錯誤率)或 CER(字符錯誤率,以 Italic 表示)在 Common Voice 15 和 Fleurs 數據集上進行評估。其他模型和數據集的 WER/CER 指標可以在 論文 的附錄 D.1、D.2 和 D.4 中找到,翻譯的 BLEU(Bilingual Evaluation Understudy)分數在附錄 D.3 中。
命令行使用
以下命令將使用 medium 模型轉錄音頻文件中的語音:
whisper audio.flac audio.mp3 audio.wav --model medium
默認設置(選擇 small 模型)適用于轉錄英語。要轉錄包含非英語語音的音頻文件,可以使用 --language 選項指定語言:
whisper japanese.wav --language Japanese
添加 --task translate 將語音翻譯成英語:
whisper japanese.wav --language Japanese --task translate
運行以下命令查看所有可用選項:
whisper --help
查看 tokenizer.py 獲取所有可用語言列表。
Python 使用
也可以在 Python 中執(zhí)行轉錄:
import whisper
model = whisper.load_model("base")
result = model.transcribe("audio.mp3")
print(result["text"])
在內部,transcribe() 方法讀取整個文件,并使用滑動的 30 秒窗口處理音頻,對每個窗口進行自回歸序列到序列的預測。
以下是 whisper.detect_language() 和 whisper.decode() 的示例用法,它們提供了對模型的低級訪問。
import whisper
model = whisper.load_model("base")
# 加載音頻并填充/修剪至 30 秒
audio = whisper.load_audio("audio.mp3")
audio = whisper.pad_or_trim(audio)
# 制作 log-Mel 頻譜圖并移至與模型相同的設備
mel = whisper.log_mel_spectrogram(audio).to(model.device)
# 檢測口語語言
_, probs = model.detect_language(mel)
print(f"Detected language: {max(probs, key=probs.get)}")
# 解碼音頻
options = whisper.DecodingOptions()
result = whisper.decode(model, mel, options)
# 打印識別的文本
print(result.text)
更多示例
請使用 ? Show and tell 討論類別,分享 Whisper 的更多示例用法和第三方擴展,例如 Web 演示、與其他工具的集成、不同平臺的移植等。
柚子快報激活碼778899分享:介紹 Whisper 模型
相關鏈接
本文內容根據網絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉載請注明,如有侵權,聯(lián)系刪除。