語音識別模型

霍格沃兹测试学院發表於2024-10-29

簡介

Whisper 是 OpenAI 的一項語音處理專案,旨在實現語音的識別、翻譯和生成任務。作為基於深度學習的語音識別模型,Whisper 具有高度的智慧化和準確性,能夠有效地轉換語音輸入為文字,並在多種語言之間進行翻譯。透過不斷的最佳化和更新,Whisper 致力於提供更加優質和高效的語音處理解決方案,以滿足不同場景和需求下的語音互動應用。

  • 官網地址:https://openai.com/research/whisper
  • github 地址:https://github.com/openai/whisper?tab=readme-ov-file

Whisper 的優點

Whisper 藉助豐富多樣的資料集,這些資料集中的語音資料與網際網路上的文字記錄相匹配,並結合了一種名為“注意力機制”的技術。這項技術使得 Whisper 在處理語音時,能夠更加有效地捕捉到語音中的關鍵資訊。

這種綜合運用資料和先進技術的方式,使得 Whisper 提高了其在各種環境下的健壯性和準確性,能夠實現更為精確、智慧的語音識別和翻譯,為使用者提供更加出色的語音處理體驗。

多工

Whisper 並不僅僅是預測給定音訊的單詞,雖然這是是語音識別的核心,但它還包含許多其他附加的功能元件,例如語言活動檢測、說話人二值化和逆文字正態化。

採用 Transformer 序列到序列模型可以實現針對不同的語言處理任務。包括以下幾種:

  • 語音識別
  • 語音翻譯
  • 口語識別
  • 語音活動檢測

這些任務的輸出由模型預測的令牌序列表示,使得單個模型可以代替傳統的語音處理管道中的多個元件,如下所示:

在這裡插入圖片描述

應用

安裝

openai-whisper
openai-whisper 與 python 3.8-3.11 和最新的 PyTorch 版本相容。

使用 pip 命令安裝:pip install -U openai-whisper

ffmpeg

openai-whisper 需要 ffmpeg 的環境,ffmpeg 是一個開源的跨平臺音影片處理工具和框架,可以用來錄製、轉換和流式傳輸音影片內容 。

官網:https://ffmpeg.org/

MAC

  • 安裝:brew install ffmpeg
  • 驗證:ffmpeg -version 出現版本資訊且無報錯表示安裝成功。
  


![在這裡插入圖片描述](https://i-blog.csdnimg.cn/direct/6ae1237ec8dc4676832e1d6683e4e4da.png)


Windows

  • 安裝:進入下載連結:https://www.gyan.dev/ffmpeg/builds/#release-builds,選擇版本下載安裝:

    在這裡插入圖片描述

  • 環境配置:下載解壓完成後,需要將 Ffmpeg 的執行檔案坐在目錄新增到系統的環境變數中。

    在這裡插入圖片描述

  • 驗證:在 cmd 中輸入 ffmpeg -version 出現版本資訊且無報錯表示安裝成功。

    在這裡插入圖片描述

命令列

# 將音訊的內容轉為文字,使用base模型whisper demo1.mp3 --model base --task transcribe

命令列常用引數

引數含義預設
--model要使用的 Whisper 模型名稱small
--task轉錄(transcribe)或翻譯(translate)transcribe
--language指定執行的語言None
--temperature指定輸出內容的相似度0
--output_dir指定輸出檔案的儲存路徑.

Python 程式碼

import whisper
# 初始化一個 base 模型
model = whisper.load_model("base")
# 傳入音訊檔案,並得到音訊輸出的文字內容
res = model.transcribe("demo.mp3")
print(res["text"])

模型呼叫

安裝 openai 第三方庫,本篇教程使用 1.16.1 版本的 openai:pip install openai




def test_openai_whisper():
    # 初始化OpenAI物件
    client = OpenAI(base_url="xxx",api_key="xxx")
    # 開啟一個音訊檔案
    audio_file1 = open("demo1.mp3", 'rb')
    audio_file2 = open("demo2.mp3", 'rb')
    # 選擇模型,並且轉錄音訊的內容
    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轉錄結果為:{res1.text}")
    print(f"audio2轉錄結果為:{res1.text}")
    print(f"audio2翻譯結果為:{res1.text}")

總結

  • 瞭解 Whisper 相關概念。
  • 完成環境安裝。
  • 學會基礎示例練習。

相關文章