OpenAI API 语音转文字

2023-03-17 16:33 更新

介绍

基于我们最先进的开源 large-v2 Whisper 模型,语音转文本 API 提供了两个端点:转录和翻译。它们可用于:

  • 将音频转录成音频所使用的任何语言。

  • 将音频翻译并转录成英文。

文件上传目前限制为 25 MB,并且支持以下输入文件类型:mp3、mp4、mpeg、mpga、m4a、wav 和 webm。

快速开始

录音

转录 API 将您要转录的音频文件和音频转录所需的输出文件格式作为输入。我们目前支持多种输入和输出文件格式。

 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

默认情况下,响应类型将是包含原始文本的 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.
....
}

要在请求中设置其他参数,您可以添加更多带有相关选项的 --form 行。例如,如果要将输出格式设置为文本,则可以添加以下行:

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

翻译

翻译 API 将任何受支持语言的音频文件作为输入,并在必要时将音频转录为英语。这与我们的 /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?

我们目前只支持翻译成英文。

支持的语言

我们目前通过转录和翻译端点支持以下语言:

南非荷兰语、阿拉伯语、亚美尼亚语、阿塞拜疆语、白俄罗斯语、波斯尼亚语、保加利亚语、加泰罗尼亚语、中文、克罗地亚语、捷克语、丹麦语、荷兰语、英语、爱沙尼亚语、芬兰语、法语、加利西亚语、德语、希腊语、希伯来语、印地语、匈牙利语、冰岛语、印度尼西亚语、意大利语、日语、卡纳达语、哈萨克语、韩语、拉脱维亚语、立陶宛语、马其顿语、马来语、马拉地语、毛利语、尼泊尔语、挪威语、波斯语、波兰语、葡萄牙语、罗马尼亚语、俄语、塞尔维亚语、斯洛伐克语、斯洛文尼亚语、西班牙语、斯瓦希里语、瑞典语、他加禄语、泰米尔语、泰语、土耳其语、乌克兰语、乌尔都语、越南语和威尔士语。

虽然基础模型是针对 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 生成的转录本的质量。该模型将尝试匹配提示的样式,因此如果提示也是如此,它更有可能使用大写和标点符号。然而,当前的提示系统比我们的其他语言模型要受限得多,并且只能对生成的音频提供有限的控制。以下是提示如何在不同情况下提供帮助的一些示例:

  1. 提示对于纠正模型经常在音频中错误识别的特定单词或首字母缩略词非常有帮助。比如下面的提示改进了DALL·E和GPT-3这两个词的转写,之前写成“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. 要保留被拆分成多个片段的文件的上下文,您可以使用前一个片段的转录本提示模型。这将使转录更加准确,因为模型将使用先前音频中的相关信息。该模型将只考虑提示的最后 224 个标记,并忽略之前的任何内容。

  4. 有时,模型可能会跳过文字记录中的标点符号。您可以使用包含标点符号的简单提示来避免这种情况:

  5. Hello, welcome to my lecture.
  6. 该模型还可能会遗漏音频中的常见填充词。如果您想在成绩单中保留填充词,您可以使用包含它们的提示:

  7. Umm, let me think like, hmm... Okay, here's what I'm, like, thinking."
  8. 有些语言可以用不同的方式书写,例如简体中文或繁体中文。默认情况下,模型可能不会始终使用您想要的成绩单写作风格。您可以通过使用您喜欢的写作风格的提示来改进这一点。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号