OpenAI API 語音轉(zhuǎn)文字

2023-03-17 16:33 更新

介紹

基于我們最先進(jìn)的開源 large-v2 Whisper 模型,語音轉(zhuǎn)文本 API 提供了兩個端點:轉(zhuǎn)錄和翻譯。它們可用于:

  • 將音頻轉(zhuǎn)錄成音頻所使用的任何語言。

  • 將音頻翻譯并轉(zhuǎn)錄成英文。

文件上傳目前限制為 25 MB,并且支持以下輸入文件類型:mp3、mp4、mpeg、mpga、m4a、wav 和 webm。

快速開始

錄音

轉(zhuǎn)錄 API 將您要轉(zhuǎn)錄的音頻文件和音頻轉(zhuǎn)錄所需的輸出文件格式作為輸入。我們目前支持多種輸入和輸出文件格式。

 python curl 
# Note: you need to be using OpenAI Python v0.27.0 for the code below to work
import openai
audio_file= open("/path/to/file/audio.mp3", "rb")
transcript = openai.Audio.transcribe("whisper-1", audio_file)
curl --request POST \
  --url https://api.openai.com/v1/audio/transcriptions \
  --header 'Authorization: Bearer TOKEN' \
  --header 'Content-Type: multipart/form-data' \
  --form file=@/path/to/file/openai.mp3 \
  --form model=whisper-1

默認(rèn)情況下,響應(yīng)類型將是包含原始文本的 json。

{
  "text": "Imagine the wildest idea that you've ever had, and you're curious about how it might scale to something that's a 100, a 1,000 times bigger.
....
}

要在請求中設(shè)置其他參數(shù),您可以添加更多帶有相關(guān)選項的 --form 行。例如,如果要將輸出格式設(shè)置為文本,則可以添加以下行:

...
--form file=@openai.mp3 \
--form model=whisper-1 \
--form response_format=text

翻譯

翻譯 API 將任何受支持語言的音頻文件作為輸入,并在必要時將音頻轉(zhuǎn)錄為英語。這與我們的 /Transcriptions 端點不同,因為輸出不是原始輸入語言,而是翻譯成英文文本。

 python curl 
# Note: you need to be using OpenAI Python v0.27.0 for the code below to work
import openai
audio_file= open("/path/to/file/german.mp3", "rb")
transcript = openai.Audio.translate("whisper-1", audio_file)
curl --request POST   --url https://api.openai.com/v1/audio/translations   --header 'Authorization: Bearer TOKEN'   --header 'Content-Type: multipart/form-data'   --form file=@/path/to/file/german.mp3   --form model=whisper-1

在這種情況下,輸入的音頻是德語,輸出的文本如下所示:

Hello, my name is Wolfgang and I come from Germany. Where are you heading today?

我們目前只支持翻譯成英文。

支持的語言

我們目前通過轉(zhuǎn)錄和翻譯端點支持以下語言:

南非荷蘭語、阿拉伯語、亞美尼亞語、阿塞拜疆語、白俄羅斯語、波斯尼亞語、保加利亞語、加泰羅尼亞語、中文、克羅地亞語、捷克語、丹麥語、荷蘭語、英語、愛沙尼亞語、芬蘭語、法語、加利西亞語、德語、希臘語、希伯來語、印地語、匈牙利語、冰島語、印度尼西亞語、意大利語、日語、卡納達(dá)語、哈薩克語、韓語、拉脫維亞語、立陶宛語、馬其頓語、馬來語、馬拉地語、毛利語、尼泊爾語、挪威語、波斯語、波蘭語、葡萄牙語、羅馬尼亞語、俄語、塞爾維亞語、斯洛伐克語、斯洛文尼亞語、西班牙語、斯瓦希里語、瑞典語、他加祿語、泰米爾語、泰語、土耳其語、烏克蘭語、烏爾都語、越南語和威爾士語。

雖然基礎(chǔ)模型是針對 98 種語言進(jìn)行訓(xùn)練的,但我們只列出了超過 <50% 單詞錯誤率 (WER) 的語言,這是語音到文本模型準(zhǔn)確性的行業(yè)標(biāo)準(zhǔn)基準(zhǔn)。該模型將返回上面未列出的語言的結(jié)果,但質(zhì)量會很低。

更長的輸入

默認(rèn)情況下,Whisper API 僅支持小于 25 MB 的文件。如果您有比這更長的音頻文件,則需要將其分成 25 MB 或更小的塊或使用壓縮音頻格式。為了獲得最佳性能,我們建議您避免在句子中間打斷音頻,因為這可能會導(dǎo)致某些上下文丟失。

處理此問題的一種方法是使用 PyDub 開源 Python 包來分割音頻:

from pydub import AudioSegment

song = AudioSegment.from_mp3("good_morning.mp3")

# PyDub handles time in milliseconds
ten_minutes = 10 * 60 * 1000

first_10_minutes = song[:ten_minutes]

first_10_minutes.export("good_morning_10.mp3", format="mp3")

OpenAI 不保證 PyDub 等第三方軟件的可用性或安全性。

提示

您可以使用提示來提高 Whisper API 生成的轉(zhuǎn)錄本的質(zhì)量。該模型將嘗試匹配提示的樣式,因此如果提示也是如此,它更有可能使用大寫和標(biāo)點符號。然而,當(dāng)前的提示系統(tǒng)比我們的其他語言模型要受限得多,并且只能對生成的音頻提供有限的控制。以下是提示如何在不同情況下提供幫助的一些示例:

  1. 提示對于糾正模型經(jīng)常在音頻中錯誤識別的特定單詞或首字母縮略詞非常有幫助。比如下面的提示改進(jìn)了DALL·E和GPT-3這兩個詞的轉(zhuǎn)寫,之前寫成“GDP 3”和“DALI”。

  2. The transcript is about OpenAI which makes technology like DALL·E, GPT-3, and ChatGPT with the hope of one day building an AGI system that benefits all of humanity
  3. 要保留被拆分成多個片段的文件的上下文,您可以使用前一個片段的轉(zhuǎn)錄本提示模型。這將使轉(zhuǎn)錄更加準(zhǔn)確,因為模型將使用先前音頻中的相關(guān)信息。該模型將只考慮提示的最后 224 個標(biāo)記,并忽略之前的任何內(nèi)容。

  4. 有時,模型可能會跳過文字記錄中的標(biāo)點符號。您可以使用包含標(biāo)點符號的簡單提示來避免這種情況:

  5. Hello, welcome to my lecture.
  6. 該模型還可能會遺漏音頻中的常見填充詞。如果您想在成績單中保留填充詞,您可以使用包含它們的提示:

  7. Umm, let me think like, hmm... Okay, here's what I'm, like, thinking."
  8. 有些語言可以用不同的方式書寫,例如簡體中文或繁體中文。默認(rèn)情況下,模型可能不會始終使用您想要的成績單寫作風(fēng)格。您可以通過使用您喜歡的寫作風(fēng)格的提示來改進(jìn)這一點。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號