了解如何将音频转换为文本, 音频转换为文本是最新的功能
介绍
语音转文本 API 提供了两个端点transcriptions
和 translations
,并且基于我们最先进的开源 large-v2 Whisper 模型。它们可用于:
- 将音频转录为音频使用的任何语言。
- 将音频翻译并转录为英语。
文件上载目前限制为 25 MB,支持以下输入文件类型:mp3
, mp4
, mpeg
, mpga
, m4a
, wav
, 和 webm
.
快速入门
改编
转录 API 将要转录的音频文件和音频转录所需的输出文件格式作为输入。我们目前支持多种输入和输出文件格式。
转录音频
1 2 3 4 5 6 |
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 |
默认情况下,响应类型将为包含原始文本的 json。
1 2 3 4 |
{ "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. .... } |
要在请求中设置其他参数,您可以使用--form
相关选项添加更多行。例如,如果要将输出格式设置为文本,则可以添加以下行:
1 2 3 4 |
... --form file=@openai.mp3 \ --form model=whisper-1 \ --form response_format=text |
翻译
翻译 API 以任何受支持的语言将音频文件作为输入,并在必要时将音频转录为英语。这与我们的 /Transcriptions 端点不同,因为输出不是原始输入语言,而是翻译成英文文本。
翻译音频
1 2 3 4 5 6 |
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 \ |
在本例中,输入的音频是德语,输出的文本如下所示:
1 |
Hello, my name is Wolfgang and I come from Germany. Where are you heading today? |
我们目前仅支持翻译成英文。
支持的语言
我们目前通过 transcription
和 stranslations
端点支持以下语言:
南非语, 阿拉伯语, 亚美尼亚语, 阿塞拜疆语, 白俄罗斯语, 波斯尼亚语, 保加利亚语, 加泰罗尼亚语, 中文, 克罗地亚语, 捷克语, 丹麦语, 荷兰语, 英语, 爱沙尼亚语, 芬兰语, 法语, 加利西亚语, 德语, 希腊语, 希伯来语, 印地语, 匈牙利语, 冰岛语, 印度尼西亚语, 意大利语, 日语, 卡纳达语, 哈萨克语, 韩语, 拉脱维亚语, 立陶宛语, 马其顿语, 马来语, 马拉地语, 毛利语, 尼泊尔语, 挪威语, 波斯语, 波兰语, 葡萄牙语, 罗马尼亚语, 俄语, 塞尔维亚语, 斯洛伐克语, 斯洛文尼亚语, 西班牙语, 斯瓦希里语, 瑞典语, 他加禄语, 泰米尔语, 泰语, 土耳其语, 乌克兰语, 乌尔都语、越南语和威尔士语。
虽然基础模型是在 98 种语言上训练的,但我们只列出了超过 <50% 单词错误率 (WER) 的语言,WER是语音到文本模型准确性的行业标准基准。该模型将返回上面未列出的语言的结果,但质量会很低。
更长的输入
默认情况下,耳语 API 仅支持小于 25 MB 的文件。如果您的音频文件比这更长,则需要将其分解为 25 MB 或更小的块或使用压缩音频格式。为了获得最佳性能,我们建议您避免在句子中间中断音频,因为这可能会导致某些上下文丢失。
处理此问题的一种方法是使用 PyDub 开源 Python 包来拆分音频:
1 2 3 4 5 6 7 8 9 10 |
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 生成的脚本的质量。该模型将尝试匹配提示的样式,因此如果提示也匹配,则更有可能使用大写和标点符号。下面是提示在不同方案中如何提供帮助的一些示例:
- 提示对于更正模型在音频中经常错误识别的特定单词或首字母缩略词非常有帮助。例如,以下提示改进了单词 DALL·E 和 GPT-3,以前写成“GDP 3”和“DALI”。成绩单是关于OpenAI的,它使像DALL·E,GPT-3和ChatGPT,希望有一天建立一个造福全人类的AGI系统
- 若要保留拆分为段的文件的上下文,可以使用前一个段的脚本提示模型。这将使成绩单更准确,因为模型将使用先前音频中的相关信息。该模型将仅考虑提示的最后 224 个令牌,并忽略之前的任何标记。
- 有时,模型可能会跳过成绩单中的标点符号。您可以通过使用包含标点符号的简单提示来避免这种情况:您好,欢迎来到我的讲座。
- 该模型还可能省略音频中的常见填充词。如果要在成绩单中保留填充词,可以使用包含它们的提示:嗯,让我想想,嗯…好吧,这就是我的想法。
- 有些语言可以用不同的方式书写,例如简体中文或繁体中文。默认情况下,模型可能并不总是使用您希望的成绩单写作风格。您可以通过使用首选写作风格的提示来改善这一点。