期待已久,語音轉文字的 Whisper 模型終於在 Azure OpenAI 上公開預覽了!不過目前在官方文檔中也還沒有太多的資訊,所以就先簡單紀錄一下測試的過程了。
目前如果想在 Azure 上使用 Whisper 模型有兩種方式,分別是透過 Azure OpenAI 或是使用 Azure AI 語音,兩邊有各自的適合情境與進階功能,因為主要只是想測試 Whisper 的功能,這邊就先選擇相對單純的 Azure OpenAI 來使用。
必要條件
- 需要具備可使用 Azure OpenAI 服務的 Azure 訂閱,可參考下方連結中的申請流程。
- 僅能在美國中北部或西歐區域使用。
- 此系列文皆使用 Python 的 openai 函式庫,安裝與引入方式可參考下方連結中的基本設定。
- 可先設定 Azure OpenAI 端點與金鑰,以下設定方式不會再重複出現在每個範例中。
- 需要使用到最新的 API 版本:2023-09-01-preview。
- Whisper 模型接受的檔案大小需小於 25 MB。
import openai
openai.api_type = "azure"
openai.api_version = "2023-09-01-preview"
openai.api_base = "https://xxxxx.openai.azure.com/" # 你的 Azure OpenAI 端點
openai.api_key = "OPENAI_API_KEY" # 你的 Azure OpenAI 金鑰
相關連結:【Azure OpenAI】Azure OpenAI Python SDK 使用方式:基本設定
測試資料
這邊使用 Azure AI 語音在 GitHub 上提供的測試,直接拿中文的語音範例來用。
轉錄:Transcribe API
Transcribe API 是 Whisper 中最基本的功能,也就是語音轉文字,使用範例如下:
audio_file = open("audio1.wav", "rb")
response = openai.Audio.transcribe(
model="whisper", deployment_id="whisper", file=audio_file
)
print(response['text'])
範例輸出:
数据、模型、测试和终结点等内容组织到自定义语音门户中的项目中。 每个项目都是特定于预合国家地区的。 例如,你可以为在美国中使用英语的呼叫中心创建项目。 若要创建第一个项目,请选择语音到文本斜杠自定义语音,然后单击新建项目。 遵照向导中的说明创建项目。 创建项目后,应该会看到四个选项卡——数据、测试、培训和部署。 使用后续步骤中提供的链接了解如何使用每个选项卡。
與其他模型的 API 類似,deployment_id 是在 Aazure OpenAI 中 Whisper 模型的部署名稱,而語音的提供方式只需要 open 打開檔案後放入參數 file 內,使用起來可以說非常方便!
翻譯:Transcription API
Transcriptions API 在語音轉文字的同時能順帶有翻譯的功能,所以輸出的文字會直接是翻譯過後的。
audio_file = open("audio1.wav", "rb")
response = openai.Audio.translate(
model="whisper", deployment_id="whisper", file=audio_file
)
print(response['text'])
輸出如下:
data, models, tests, and termination points, etc. are organized into the projects in the self-defined voice door. Each project is specific to the Yuhe National Area. For example, you can create a project for the call center that uses English in the United States. If you want to create the first project, please select the voice-to-text slash self-defined voice, and then click on the new project. Follow the instructions in the guide to create a project. After creating the project, you should see four options, data, tests, training, and deployment. Use the link provided in the follow-up steps to learn how to use each option card.
使用方式對比 Transcribe API 只需要改成呼叫 translate 端點就可以了,一樣是非常方便。
但目前比較可惜的是,雖然輸入的語音檔支援了多國語言,但都只能翻譯成英文,希望後續會有多國到多國的翻譯功能,一個暫時的解法是可以透過 GPT 來做後處理。
使用 GPT 進行後處理
這邊透過簡單設計 system_prompt 將 GPT 當作翻譯器使用,一些使用技巧可以看看相關連結的聊天模型使用方式。
gpt_response = openai.ChatCompletion.create(
deployment_id="gpt-35-turbo",
messages=[
{"role": "system", "content": "你是一個將文字翻譯成繁體中文的助手"},
{"role": "user", "content": response['text']},
]
)
print(gpt_response['choices'][0]['message']['content'])
輸出如下:
在自定義語音辨識裝置中,數據、模型、測試和終止點等項目被組織成項目。每個項目都是針對宇河國家區域而設計的。例如,您可以為在美國使用英語的呼叫中心創建一個項目。如果您想創建第一個項目,請選擇語音轉文字/自定義語音,然後點擊新項目。按照指南中的指示創建項目。創建項目後,您應該可以看到四個選項:數據、測試、培訓和部署。使用後續步驟中提供的鏈接來學習如何使用每個選項卡。
對比上方直接轉錄出的中文文字,在這個範例中可以說是非常精準!
相關連結:【Azure OpenAI】Azure OpenAI Python SDK 使用方式:聊天模型
總結
直接透過 API 來呼叫 Whisper 的轉錄與翻譯功能真的非常方便快速(連文章寫起來都很快😆),如果可以善用 GPT 來做適當的後處理,例如針對公司產品的專有名詞或縮寫在文字中做修正,相信在一些應用上就能做出企業專屬、更全面的聊天助手。
系列文章
- 【Azure OpenAI】Azure OpenAI 申請流程全紀錄
- 【Azure OpenAI】Azure OpenAI Python SDK 使用方式:基本設定
- 【Azure OpenAI】Azure OpenAI Python SDK 使用方式:聊天模型
- 【Azure OpenAI】Azure OpenAI Python SDK 使用方式:Embedding
- 【Azure OpenAI】Azure OpenAI Python SDK 使用方式:Function Calling
- 【Azure OpenAI】Azure OpenAI Python SDK 使用方式:Whisper
留言
張貼留言