語音識別大模型,是人工智能領域的一項重要技術,它能夠將人類的語音轉換為文本。近年來,隨著深度學習技術的不斷發展,語音識別大模型取得了顯著的進展,并在各個領域得到了廣泛應用。
主流語音識別大模型
目前,市面上涌現出許多優秀的語音識別大模型,它們在性能、功能和應用場景上各有側重。以下是一些主流的語音識別大模型:
- OpenAI Whisper: 由OpenAI公司開發的Whisper,是一個強大的多語言語音識別模型。它在多個語音識別任務上表現出色,能夠處理各種口音、語速和噪音環境下的語音。
- Google Cloud Speech-to-Text: 谷歌云提供的語音識別服務,支持多種語言和方言,具有高準確率和低延遲的特點。它還提供了豐富的定制化功能,以滿足不同場景的需求。
- 訊飛星火: 訊飛公司推出的星火認知大模型,具備強大的語音識別能力,尤其在中文語音識別方面表現突出。它還支持多種方言和少數民族語言的識別。
- 阿里云語音識別: 阿里云提供的語音識別服務,支持多種語言和場景,具有高性價比和穩定性。它還提供了豐富的API和SDK,方便開發者集成到自己的應用中。
- 華為云語音識別: 華為云推出的語音識別服務,支持多種語言和方言,具有高準確率和實時性。它還提供了定制化模型訓練服務,以滿足特定領域的需求。
開源的語音識別大模型
-
Whisper
- 介紹:OpenAI 開發的通用語音識別模型,功能強大,支持多種語言識別和翻譯。
- 特點:
- 多語言支持
- 多種模型大小可選擇
- 開源免費,方便研究和定制
- 項目地址:https://github.com/openai/whisper
-
MooER
- 介紹:摩爾線程開發的音頻理解大模型,是業界首個基于國產全功能 GPU 進行訓練和推理的大型開源語音模型。
- 特點:
- 支持中英文語音識別和中譯英語音翻譯
- 基于國產 GPU 訓練和推理
- 開源推理代碼和模型
- 項目地址:https://github.com/MooreThreads/MooER
-
Mini-Omni
- 介紹:清華大學和智譜 AI 提出 Mini-Omni,是首個開源的端到端實時語音多模態模型,支持語音輸入、流式語音輸出的多模態交互能力。
- 特點:
- 文本-語音同時生成
- 支持語音輸入、流式語音輸出
- 開源免費
- 項目地址:https://github.com/gpt-omni/mini-omni
- SenseVoice
SenseVoice多語言音頻理解模型,支持語音識別、語種識別、語音情感識別、聲學事件檢測、逆文本正則化等能力,采用工業級數十萬小時的標注音頻進行模型訓練,保證了模型的通用識別效果。模型可以被應用于中文、粵語、英語、日語、韓語音頻識別,并輸出帶有情感和事件的富文本轉寫結果。?
- FunASR
FunASR希望在語音識別的學術研究和工業應用之間架起一座橋梁。通過發布工業級語音識別模型的訓練和微調,研究人員和開發人員可以更方便地進行語音識別模型的研究和生產,并推動語音識別生態的發展。讓語音識別更有趣!項目地址:https://github.com/modelscope/FunASR
?
?OpenAI的Whisper模型
OpenAI 提供了兩個基于開源的 Whisper large-v2 模型的語音到文本API服務:
- 轉錄(transcriptions):將音頻轉錄為音頻所使用的任何語言。
- 翻譯(translations):將音頻翻譯并轉錄為英語
目前文件上傳限制為 25 MB,支持以下輸入文件類型:mp3、mp4、mpeg、mpga、m4a、wav 和 webm
。
語音轉錄 Transcription API
輸入音頻文件,返回轉錄對象(JSON)
參數
- file(文件):需要轉錄的音頻文件對象(不是文件名),支持以下格式:flac、mp3、mp4、mpeg、mpga、m4a、ogg、wav 或 webm。
- model('whisper-1'):使用的模型 ID。目前僅可使用由我們的開源 Whisper V2 模型驅動的 whisper-1。
- language(語言,可選):輸入音頻的語言。提供 ISO-639-1 格式的輸入語言可以提高準確性和響應速度。
- prompt(提示,可選):可選文本,用于指導模型的風格或繼續前一個音頻片段。提示應與音頻語言相匹配。
- response_format(響應格式,可選):轉錄輸出的格式,默認為 json。可選的格式有:json、text、srt、verbose_json 或 vtt。
- temperature(溫度,可選):采樣溫度,范圍從 0 到 1。更高的值,如 0.8,將使輸出更隨機,而更低的值,如 0.2,將使輸出更集中和確定。如果設置為 0,模型將使用對數概率自動提高溫度,直到達到某些閾值。
- timestamp_granularities[](時間戳粒度,可選):為此轉錄填充的時間戳粒度,默認為 segment。響應格式必須設置為 verbose_json 才能使用時間戳粒度。支持以下一個或兩個選項:word 或 segment。注意:segment 時間戳不增加額外延遲,但生成 word 時間戳會增加額外延遲。
返回值
- 轉錄對象(Transcription Object)或詳細轉錄對象(Verbose Transcription Object)。
使用 Whisper 實現中文轉錄代碼演示
將語音文件轉成文字。輸入語音 輸出文字。
from openai import OpenAI
client = OpenAI()audio_file= open("./audio/liyunlong.mp3", "rb")transcription = client.audio.transcriptions.create(model="whisper-1", file=audio_file
)print(transcription.text)
?返回
二營長,你他娘的意大利泡呢?給我拉來!
?
語音翻譯 API
輸入音頻文件,返回翻譯文本。
請求體
- file(文件):需要翻譯的音頻文件對象(不是文件名),支持以下格式:flac、mp3、mp4、mpeg、mpga、m4a、ogg、wav 或 webm。
- model('whisper-1'):使用的模型 ID。目前只有由我們的開源 Whisper V2 模型驅動的 whisper-1 可用。
- prompt(提示,可選):可選文本,用于指導模型的風格或繼續前一個音頻片段。提示應為英文。
- response_format(響應格式,可選):轉錄輸出的格式,默認為 json。可選的格式包括:json、text、srt、verbose_json 或 vtt。
- temperature(溫度,可選):采樣溫度,范圍從 0 到 1。較高的值,如 0.8,將使輸出更隨機,而較低的值,如 0.2,將使輸出更集中和確定。如果設置為 0,模型將使用對數概率自動增加溫度,直到達到特定閾值。
返回值
- translated_text: 翻譯后的文本。
?使用 Whisper 實現中文識別+翻譯
audio_file= open("./audio/liyunlong.mp3", "rb")translation = client.audio.translations.create(model="whisper-1", file=audio_file,prompt="Translate into English",
)print(translation.text)
返回英文:
Second Battalion Commander, where is your Italian gun? Bring it to me.
語音與文字互轉
Whisper: 語音--->文字
TTS:文字--->語音
可以將這2個大模型一起使用,形成 【語音-->文字/翻譯--->語音】模式,比如將中文語音轉英語語音,將你的錄音翻譯成外語并且轉語音。
Whisper---> TTS 的代碼演示
gdg_audio_file = open("./audio/gdg.mp3", "rb")
gdg_speech_file = "./audio/gdg_en.mp3"translation = client.audio.translations.create(model="whisper-1", file=gdg_audio_file
)print(translation.text)with client.audio.speech.with_streaming_response.create(model="tts-1",voice="onyx",input=translation.text
) as response:response.stream_to_file(gdg_speech_file)