音频

了解如何将音频转换为文本或将文本转换为音频。

相关指南:语音转文字

创建语音

生成音频。

请求体:

参数名称类型是否必需默认值描述
modelstring必需可用的TTS模型之一:tts-1tts-1-hd
inputstring必需要生成音频的文本。最大长度为4096个字符。
voicestring必需生成音频时使用的语音。支持的语音有:alloyechofableonyxnova,和shimmer。在文本转语音指南中提供了语音的预览。
response_formatstring可选默认为mp3音频的格式。支持的格式有:mp3opusaacflacwav,和pcm
speednumber可选默认为1生成的音频的速度。选择一个值从0.254.01.0是默认值。

返回值:

音频文件内容。

示例请求:

curl https://api.openai.com/v1/audio/speech \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "The quick brown fox jumped over the lazy dog.",
    "voice": "alloy"
  }' \
  --output speech.mp3

创建转录

端点:POST https://api.openai.com/v1/audio/transcriptions

将音频转录为输入语言。

请求正文

参数类型必需描述
filefile必需要转录的音频文件对象(不是文件名),格式为以下之一:flac、mp3、mp4、mpeg、mpga、m4a、ogg、wav 或 webm。
modelstring必需要使用的模型的 ID。目前仅提供 whisper-1(由我们的开源 Whisper V2 模型驱动)。
languagestring可选输入音频的语言。如果使用 ISO-639-1 格式提供输入语言,可以提高准确性和延迟。
promptstring可选可选的文本,用于指导模型的风格或继续先前的音频段。提示应该与音频语言相匹配。
response_formatstring可选转录输出的格式,以以下选项之一提供:jsontextsrtverbose_jsonvtt。 默认为 json
temperaturenumber可选采样温度,范围为 0 到 1。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定性。如果将其设置为 0,则模型将使用 对数概率 自动增加温度,直到达到某些阈值。
timestamp_granularities[]array可选要为此转录填充的时间戳粒度。必须将 response_format 设置为 verbose_json 才能使用时间戳粒度。支持以下选项之一或两者:wordsegment。请注意,段时间戳没有额外的延迟,但是生成单词时间戳会导致额外的延迟。

返回

转录对象 或者 详细转录对象

示例请求

curl https://api.openai.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: multipart/form-data" \
  -F file="@/path/to/file/audio.mp3" \
  -F model="whisper-1"

响应

{
  "text": "想象一下你曾经有过的最疯狂的想法,并且你很好奇它如何扩展到100倍、1000倍大的规模。这是一个你可以实现这些想法的地方。"
}

单词时间戳


curl https://api.openai.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: multipart/form-data" \
  -F file="@/path/to/file/audio.mp3" \
  -F "timestamp_granularities[]=word" \
  -F model="whisper-1" \
  -F response_format="verbose_json"

响应

{
  "task": "transcribe",
  "language": "english",
  "duration": 8.470000267028809,
  "text": "The beach was a popular spot on a hot summer day. People were swimming in the ocean, building sandcastles, and playing beach volleyball.",
  "words": [
    {
      "word": "The",
      "start": 0.0,
      "end": 0.23999999463558197
    },
    ...
    {
      "word": "volleyball",
      "start": 7.400000095367432,
      "end": 7.900000095367432
    }
  ]
}

段时间戳


curl https://api.openai.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: multipart/form-data" \
  -F file="@/path/to/file/audio.mp3" \
  -F "timestamp_granularities[]=segment" \
  -F model="whisper-1" \
  -F response_format="verbose_json"

响应

{
  "task": "转录",
  "language": "英语",
  "duration": 8.470000267028809,
  "text": "The beach was a popular spot on a hot summer day. People were swimming in the ocean, building sandcastles, and playing beach volleyball.",
  "segments": [
    {
      "id": 0,
      "seek": 0,
      "start": 0.0,
      "end": 3.319999933242798,
      "text": " The beach was a popular spot on a hot summer day.",
      "tokens": [
        50364, 440, 7534, 390, 257, 3743, 4008, 322, 257, 2368, 4266, 786, 13, 50530
      ],
      "temperature": 0.0,
      "avg_logprob": -0.2860786020755768,
      "compression_ratio": 1.2363636493682861,
      "no_speech_prob": 0.00985979475080967
    },
    ...
  ]
}

创建翻译

Endpoint

POST <https://api.openai.com/v1/audio/translations>

摘要


将音频翻译成英语。

请求正文

名称类型必需描述
filefile要翻译的音频文件对象(不是文件名),格式为以下之一:flac、mp3、mp4、mpeg、mpga、m4a、ogg、wav或 webm。
modelstring要使用的模型ID。目前仅提供whisper-1(该模型由我们的开源Whisper V2模型提供支持)。
promptstring可选的文本,用于指导模型的风格或继续先前的音频段。提示应该是英语。
response_formatstring默认为json的转录输出格式,以下选项之一:jsontextsrtverbose_jsonvtt
temperaturenumber采样温度,介于0和1之间。较高的值(如0.8)将使输出更加随机,而较低的值(如0.2)将使其更加集中和确定性。如果设置为0,则模型将使用对数概率自动增加温度,直到达到某些阈值。

返回

已翻译的文本。

示例请求

curl https://api.openai.com/v1/audio/translations \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: multipart/form-data" \
  -F file="@/path/to/file/german.m4a" \
  -F model="whisper-1"

响应

{
  "text": "Hello, my name is Wolfgang and I come from Germany. Where are you heading today?"
}

转录对象

由模型根据提供的输入返回的转录响应。

转录对象

名称类型描述
textstring转录的文本。
{
  "text": "想象一下你曾经有过的最野的想法,你好奇它们如何扩展到比它们更大的事情,这是一个你可以去做它们的地方。"
}

转录对象

表示基于提供的输入由模型返回的详细JSON转录响应。

属性类型描述
语言字符串输入音频的语言。
持续时间字符串输入音频的持续时间。
文本字符串转录的文本。
单词数组提取的单词及其对应的时间戳。
数组转录文本的段落及其对应的细节。
{
  "task": "transcribe",
  "language": "english",
  "duration": 8.470000267028809,
  "text": "The beach was a popular spot on a hot summer day. People were swimming in the ocean, building sandcastles, and playing beach volleyball.",
  "segments": [
    {
      "id": 0,
      "seek": 0,
      "start": 0.0,
      "end": 3.319999933242798,
      "text": " The beach was a popular spot on a hot summer day.",
      "tokens": [
        50364, 440, 7534, 390, 257, 3743, 4008, 322, 257, 2368, 4266, 786, 13, 50530
      ],
      "temperature": 0.0,
      "avg_logprob": -0.2860786020755768,
      "compression_ratio": 1.2363636493682861,
      "no_speech_prob": 0.00985979475080967
    },
    ...
  ]
}

Was this page helpful?