音频 API 提供两个语音转文本终结点,以及 ,基于我们最先进的开源 large-v2 Whisper 模型。它们可用于:transcriptions translations
文件上传目前限制为 25 MB,支持以下输入文件类型:mp3、mp4、mpeg、mpga、m4a、wav、webm。
转录 API 将要转录的音频文件和音频转录所需的输出文件格式作为输入。我们目前支持多种输入和输出文件格式。
from openai import OpenAI
client = OpenAI()
audio_file= open("/path/to/file/audio.mp3", "rb")
transcript = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file
)
默认情况下,响应类型将为包含原始文本的 json。
{
“text”: “想象一下你曾经有过的最疯狂的想法,你很好奇它如何扩展到 100 倍、1000 倍的东西。
....
}
音频 API 还允许您在请求中设置其他参数。例如,如果要将 设置为 ,则请求将如下所示:response_format text
from openai import OpenAI
client = OpenAI()
audio_file = open("speech.mp3", "rb")
transcript = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file,
response_format="text"
)
API 参考包括可用参数的完整列表。
翻译 API 将任何受支持语言的音频文件作为输入,并在必要时将音频转录为英语。这与我们的 /Transcriptions 终结点不同,因为输出不是原始输入语言,而是翻译成英语文本。
from openai import OpenAI
client = OpenAI()
audio_file= open("/path/to/file/german.mp3", "rb")
transcript = client.audio.translations.create(
model="whisper-1",
file=audio_file
)
在本例中,输入的音频是德语的,输出的文本如下所示:
大家好,我叫沃尔夫冈,来自德国。你今天要去哪里?
我们目前只支持翻译成英文。
我们目前通过 transcriptions和translations 端点支持以下语言:
南非荷兰语、阿拉伯语、亚美尼亚语、阿塞拜疆语、白俄罗斯语、波斯尼亚语、保加利亚语、加泰罗尼亚语、中文、克罗地亚语、捷克语、丹麦语、荷兰语、英语、爱沙尼亚语、芬兰语、法语、加利西亚语、德语、希腊语、希伯来语、印地语、匈牙利语、冰岛语、印度尼西亚语、意大利语、日语、卡纳达语、哈萨克语、拉脱维亚语、立陶宛语、马其顿语、马来语、马拉地语、毛利语、尼泊尔语、挪威语、波斯语、波兰语、葡萄牙语、罗马尼亚语、俄语、塞尔维亚语、斯洛伐克语、斯洛文尼亚语、西班牙语、斯瓦希里语、瑞典语、他加禄语、泰米尔语、泰米尔语、土耳其语、乌克兰语、 乌尔都语、越南语和威尔士语。
虽然基础模型在 98 种语言上进行了训练,但我们只列出了超过 <50% 字错误率 (WER) 的语言,这是语音转文本模型准确性的行业标准基准。该模型将返回上面未列出的语言的结果,但质量会很低。
默认情况下,Whisper API 仅支持小于 25 MB 的文件。如果您的音频文件比这更长,则需要将其分解为 25 MB 或更小的块或使用压缩的音频格式。为了获得最佳性能,我们建议您避免在句子中间中断音频,因为这可能会导致某些上下文丢失。
处理此问题的一种方法是使用 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 生成的脚本的质量。该模型将尝试匹配提示的样式,因此,如果提示也这样做,则更有可能使用大写和标点符号。然而,当前的提示系统比我们的其他语言模型要有限得多,并且只能对生成的音频提供有限的控制。下面是提示在不同情况下如何提供帮助的一些示例:
正如我们在提示部分所探讨的,使用 Whisper 时面临的最常见挑战之一是模型通常无法识别不常见的单词或首字母缩略词。为了解决这个问题,我们重点介绍了在以下情况下提高 Whisper 可靠性的不同技术: