音频
了解如何将音频转换为文本或将文本转换为音频。
相关指南:语音转文字
创建语音
生成音频。
请求体:
参数名称 | 类型 | 是否必需 | 默认值 | 描述 |
---|---|---|---|---|
model | string | 必需 | 可用的TTS模型之一:tts-1 或tts-1-hd | |
input | string | 必需 | 要生成音频的文本。最大长度为4096个字符。 | |
voice | string | 必需 | 生成音频时使用的语音。支持的语音有:alloy ,echo ,fable ,onyx ,nova ,和shimmer 。在文本转语音指南中提供了语音的预览。 | |
response_format | string | 可选 | 默认为mp3 | 音频的格式。支持的格式有:mp3 ,opus ,aac ,flac ,wav ,和pcm 。 |
speed | number | 可选 | 默认为1 | 生成的音频的速度。选择一个值从0.25 到4.0 。1.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
将音频转录为输入语言。
请求正文
参数 | 类型 | 必需 | 描述 |
---|---|---|---|
file | file | 必需 | 要转录的音频文件对象(不是文件名),格式为以下之一:flac、mp3、mp4、mpeg、mpga、m4a、ogg、wav 或 webm。 |
model | string | 必需 | 要使用的模型的 ID。目前仅提供 whisper-1 (由我们的开源 Whisper V2 模型驱动)。 |
language | string | 可选 | 输入音频的语言。如果使用 ISO-639-1 格式提供输入语言,可以提高准确性和延迟。 |
prompt | string | 可选 | 可选的文本,用于指导模型的风格或继续先前的音频段。提示应该与音频语言相匹配。 |
response_format | string | 可选 | 转录输出的格式,以以下选项之一提供:json 、text 、srt 、verbose_json 或 vtt 。 默认为 json 。 |
temperature | number | 可选 | 采样温度,范围为 0 到 1。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定性。如果将其设置为 0,则模型将使用 对数概率 自动增加温度,直到达到某些阈值。 |
timestamp_granularities[] | array | 可选 | 要为此转录填充的时间戳粒度。必须将 response_format 设置为 verbose_json 才能使用时间戳粒度。支持以下选项之一或两者:word 或 segment 。请注意,段时间戳没有额外的延迟,但是生成单词时间戳会导致额外的延迟。 |
返回
示例请求
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>
摘要
将音频翻译成英语。
请求正文
名称 | 类型 | 必需 | 描述 |
---|---|---|---|
file | file | 是 | 要翻译的音频文件对象(不是文件名),格式为以下之一:flac、mp3、mp4、mpeg、mpga、m4a、ogg、wav或 webm。 |
model | string | 是 | 要使用的模型ID。目前仅提供whisper-1 (该模型由我们的开源Whisper V2模型提供支持)。 |
prompt | string | 否 | 可选的文本,用于指导模型的风格或继续先前的音频段。提示应该是英语。 |
response_format | string | 否 | 默认为json的转录输出格式,以下选项之一:json 、text 、srt 、verbose_json 或vtt 。 |
temperature | number | 否 | 采样温度,介于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?"
}
转录对象
由模型根据提供的输入返回的转录响应。
转录对象
名称 | 类型 | 描述 |
---|---|---|
text | string | 转录的文本。 |
{
"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
},
...
]
}