Ultravox - 多模態語音大型語言模型
產品概述
Ultravox 是一款基於預訓練的Mistral-Nemo-Instruct-2407 和whisper-large-v3-turbo 的多模態語音大型語言模型(LLM)。它能夠同時處理語音和文字輸入,例如文字系統提示和語音使用者訊息。 Ultravox 透過特殊的<|audio|> 偽標記將輸入音訊轉換為嵌入,並產生輸出文字。未來版本計劃擴展標記詞彙以支援生成語義和聲學音訊標記,從而可以輸入到聲碼器中產生語音輸出。
開發團隊與許可
此模型由Fixie.ai 開發,採用MIT 許可。
目標受眾
Ultravox 的目標受眾包括需要處理語音和文字資料的開發者和企業,如語音辨識、語音翻譯、語音分析等領域的專業用戶。本產品因其多模態處理能力和高效率的訓練方法,特別適合需要快速、準確地處理和產生語音及文字訊息的使用者。
使用場景範例
作為語音代理:處理使用者的語音指令。
語音轉語音翻譯:幫助跨語言溝通。
語音分析:提取關鍵訊息,用於安全監控或客戶服務。
產品特色
語音和文字輸入處理:能夠同時處理語音和文字輸入,適用於多種應用場景。
音訊嵌入替換:使用<|audio|> 偽標記將輸入音訊轉換為嵌入,並提高模型的多模態處理能力。
語音轉語音翻譯:適用於語音翻譯,分析語音音訊等場景。
模型產生文字:基於合併的嵌入輸入產生輸出文字。
未來支援語義和聲學音訊標記:計劃在未來版本中支援生成語義和聲學音訊標記,進一步擴展模型功能。
知識蒸餾損失訓練:使用知識蒸餾損失進行訓練,使Ultravox 模型嘗試匹配基於文本的Mistral 主幹的logits。
混合精準度訓練:採用BF16 混合精準度訓練,提升訓練效率。
使用教程
1. 安裝必要的庫
- 使用pip 安裝transformers、peft 和librosa 函式庫。
2. 導入庫
- 在程式碼中匯入transformers、numpy 和librosa 函式庫。
3. 載入模型
- 使用transformers.pipeline 載入'fixie-ai/ultravox-v041-mistral-nemo' 模型。
4. 準備音訊輸入
- 使用librosa.load 載入音訊文件,並取得音訊資料和取樣率。
5. 定義對話輪次
- 建立一個包含系統角色和內容的對話輪次清單。
6. 呼叫模型
- 將音訊資料、對話輪次和取樣率作為參數,呼叫模型以產生輸出文字。
7. 取得結果
- 模型將產生的文字作為輸出,可以用於進一步的處理或顯示。