想象一下,您花了数小时写好一篇内容。
您对最终成果很满意,于是将其发布给大众。
公开一段时间后,您发现自己错失了大量受众,因为许多人觉得没有时间坐下来认真阅读您的作品。
您考虑亲自为内容配音,但时间不允许。您也动过雇人配音的念头,但拿到的报价远超预算,寻找一位嗓音“合适”的人也要耗费不少精力。
按照 21 世纪的常规,您转向技术寻求解决方案。这时,您了解到了 OpenAI 的文本转语音(TTS)API。
在接下来的教程中,我们将介绍 OpenAI 的 TTS API,包括其主要特性、如何上手、个性化定制,以及真实世界的应用场景。
什么是 OpenAI 的 TTS API?
文本转语音(TTS)是一种辅助技术,用于将文本格式的自然语言转换为语音。具体而言,文本转语音系统会读取计算机(或任何其他数字设备)上的文字,并将其朗读出来。
OpenAI 的 TTS API 是一个端点,使用户能够与其将文本转换为自然语音的 TTS 人工智能模型交互。该模型有两个变体:
TTS-1 :最新的 AI 模型,针对实时文本转语音用例进行了优化。
TTS-1-HD :最新的 AI 模型,针对音质进行了优化。
该端点内置六种声音,并且根据 OpenAI TTS 文档 ,可用于:
为书面博客文章配音
生成多种语言的语音音频
通过流式传输提供实时音频输出
不过,需要注意的是,OpenAI 的使用政策 要求用户向终端用户清晰披露其所听到的 TTS 声音是由 AI 生成,而非人声。
开始使用 TTS API
下面看看如何开始使用 OpenAI 文本转语音 API,包括前置条件和需要遵循的步骤:
前置条件
一个已充值的 OpenAI 账户 ——请参见下文“了解 API 限额与定价”。
Python 3.7+
IDE
步骤 1:生成 API 密钥
登录您的 OpenAI 账户后,您会进入首页。从这里,点击页面左上角的 OpenAI 标志以展开侧边栏。
选择“API Keys”。
选择“Create new secret key” 并为您的 API 密钥命名——我们将其命名为“tts-example”。
创建 API 密钥时,会生成一个密钥。请务必将其保存在安全的位置。
现在您已经拿到密钥,可以开始了!
步骤 2:创建虚拟环境
虚拟环境用于为特定项目创建一个容器或隔离环境,以安装与 Python 相关的依赖项。这样可以针对不同项目使用不同版本的 Python 及其包。
更深入地介绍虚拟环境超出了本文范围。请参阅Python 中的虚拟环境 教程了解如何创建。
步骤 3:编写代码
语音端点有三个关键输入:
在 OpenAI 的文本转语音文档 中提供了示例请求,因此我们无需重复造轮子。
示例请求如下:
from pathlib import Path
from openai import OpenAI
client = OpenAI( )
speech_file_path = Path( __file__) . parent / "speech.mp3"
response = client. audio. speech. create(
model= "tts-1" ,
voice= "alloy" ,
input = "Today is a wonderful day to build something people love!"
)
response. stream_to_file( speech_file_path) 技术支持
按目前的写法,这段代码无法运行。
原因在于我们还没有把第 1 步生成的 API 密钥传给 OpenAI 客户端……
步骤 4:传入 API 密钥
最简单的办法是在 OpenAI() 对象中添加一个 api_key 参数,将密钥传入。
例如:
client = OpenAI( api_key= "secret key goes here" ) 技术支持
不过,在 Python 中这样做并不是最佳实践。
我们将改用 dotenv ,从 .env 文件中读取密钥。
步骤 4.1:安装 dotenv
首先,您需要在虚拟环境中安装 dotenv。在虚拟环境中运行以下命令:
pip install python- dotenv技术支持
步骤 4.2:读取环境变量
安装好 dotenv 后,我们可以创建一个包含键值对的 .env 文件,并将这些值设置为环境变量。
这样,即便代码公开分享,我们也能隐藏密钥。
首先创建一个 .env 文件,并写入以下内容:
SECRET_KEY = "insert your secret key token here" 技术支持
现在,我们可以在 main.py 文件中通过 dotenv 读取环境变量。
代码如下所示。
import os
from pathlib import Path
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv( )
SECRET_KEY = os. getenv( "SECRET_KEY" )
client = OpenAI( api_key= SECRET_KEY)
speech_file_path = Path( __file__) . parent / "speech.mp3"
response = client. audio. speech. create(
model= "tts-1" ,
voice= "alloy" ,
input = "Today is a wonderful day to build something people love!"
)
response. stream_to_file( speech_file_path) 技术支持
现在代码可以运行了。
代码的默认行为是输出一份朗读音频的 MP3 文件。如果您希望其他文件格式,可以将输出配置为任意受支持的格式 。
自定义声音与输出
世界上有形形色色的声音和口音。
虽然很难一一涵盖,但 OpenAI 的 TTS 试图通过在 API 中集成六种独特的内置声音,来反映我们所处世界的多样性:
Alloy
Echo
Fable
Onyx
Nova
Shimmer
这些声音可传达不同的个性,您也可以按个人偏好选择。只需在客户端对象中通过 voice 参数设置您希望使用的 voice 即可。
response = client. audio. speech. create(
model= "tts-1" ,
voice= "alloy" ,
input = "Today is a wonderful day to build something people love!"
) 技术支持
查看 OpenAI 的文本转语音 API 文档 ,了解可用的声音。
您也可以更改输出格式。
API 的默认响应是将文本转换为 MP3 文件。不过,OpenAI 还提供了多种其他格式,以满足您的需求与偏好,例如:
高级音频编码(AAC)。 AAC 广泛用于数字音频压缩,以压缩效率著称。因此,它是 YouTube、Android 和 iOS 等软件与应用的首选格式。如果需要在质量与文件大小之间取得平衡,或预计用户会在多种设备上收听,AAC 是一个不错的选择。
自由无损音频编码(FLAC)。 谈到无损音频压缩,FLAC 是首选——这意味着它可以在不损失质量的情况下减小文件体积。音频发烧友通常偏爱 FLAC,它非常适合归档,或在带宽足以承载更大文件时使用。
Opus。 如果您希望在不同比特率下兼具低延迟与良好压缩,适用于互联网流媒体与通信,可选择 Opus 格式。
MP3。 即便不是技术达人也知道 MP3。它是兼容性最强、支持最广的音频文件格式,几乎适用于所有设备与软件。作为默认格式,它非常适合通用场景。
要点提示: 您选择的输出格式会影响音频质量、文件大小,以及与不同设备和应用的兼容性。
在语言支持方面,文本转语音模型沿用了用于语音转文本的 Whisper 模型;这些声音针对英语进行了优化,但也支持多种其他语言 。
OpenAI 文本转语音 API 的真实用例
现在我们已经了解了如何设置 TTS API,接下来看看一些可实践的用法示例。
为书面博客文章或书籍配音
假设您写了一本书或一篇博客,希望通过转换成音频扩大受众。如果采用传统方式,您需要寻找配音员(或自己配音),这可能是个漫长的过程。
使用 OpenAI TTS API 可以显著缩短流程;您只需将文本文档传给 API,它就会将其转换为语音。
用多种语言生成语音音频
语言教师无需再教授大班课程,而是可以使用 OpenAI 的文本转语音 API,为学生用不同语言与方言制作个性化课程。尽管这些声音针对英语进行了优化,但该 API 仍可用于生成多种语言的音频内容。
通过流式传输实现实时音频输出
OpenAI TTS API 可用于创建比传统 TTS 系统更逼真、更富表现力的 AI 声音。电子游戏开发者可以利用此能力,将其应用于角色之上,使玩家体验更具沉浸感。
另一个用例是打造更具吸引力的虚拟助手和聊天机器人。
了解 API 限额与定价
对于付费账户,OpenAI TTS API 的速率限制从每分钟 50 次请求(RPM)起步,最大输入长度为 4096 个字符——在默认语速下约相当于 5 分钟音频。
关于 TTS 模型,定价如下:
标准 TTS 模型: 每 1,000 个字符 0.015 美元。
TTS HD 模型: 每 1,000 个字符 0.030 美元。
如果您想以较低成本将 TTS API 集成到小型项目中,标准 TTS 模型可能更合适。TTS HD 模型价格略高,但提供高清音频;当音质至关重要时,这是理想选择——了解更多OpenAI 音频模型的定价 。
总结
OpenAI 的文本转语音 API 是一个将文本生成高质量语音音频的端点。它内置六种声音,用户可根据用例在 TTS-1 与 TTS-1-HD 两个模型中选择;TTS-1 针对实时文本转语音优化,TTS-1-HD 则针对音质优化。
在本文中,我们介绍了:
什么是 OpenAI 的 TTS API?
如何使用
如何自定义声音与输出
真实世界的应用场景
API 限额与定价
继续学习的精选资源:
想象一下,您花了数小时写好一篇内容。
您对最终成果很满意,于是将其发布给大众。
公开一段时间后,您发现自己错失了大量受众,因为许多人觉得没有时间坐下来认真阅读您的作品。
您考虑亲自为内容配音,但时间不允许。您也动过雇人配音的念头,但拿到的报价远超预算,寻找一位嗓音“合适”的人也要耗费不少精力。
按照 21 世纪的常规,您转向技术寻求解决方案。这时,您了解到了 OpenAI 的文本转语音(TTS)API。
在接下来的教程中,我们将介绍 OpenAI 的 TTS API,包括其主要特性、如何上手、个性化定制,以及真实世界的应用场景。
什么是 OpenAI 的 TTS API?
文本转语音(TTS)是一种辅助技术,用于将文本格式的自然语言转换为语音。具体而言,文本转语音系统会读取计算机(或任何其他数字设备)上的文字,并将其朗读出来。
OpenAI 的 TTS API 是一个端点,使用户能够与其将文本转换为自然语音的 TTS 人工智能模型交互。该模型有两个变体:
该端点内置六种声音,并且根据 OpenAI TTS 文档,可用于:
不过,需要注意的是,OpenAI 的使用政策要求用户向终端用户清晰披露其所听到的 TTS 声音是由 AI 生成,而非人声。
开始使用 TTS API
下面看看如何开始使用 OpenAI 文本转语音 API,包括前置条件和需要遵循的步骤:
前置条件
步骤 1:生成 API 密钥
登录您的 OpenAI 账户后,您会进入首页。从这里,点击页面左上角的 OpenAI 标志以展开侧边栏。
选择“API Keys”。
选择“Create new secret key”并为您的 API 密钥命名——我们将其命名为“tts-example”。
创建 API 密钥时,会生成一个密钥。请务必将其保存在安全的位置。
现在您已经拿到密钥,可以开始了!
步骤 2:创建虚拟环境
虚拟环境用于为特定项目创建一个容器或隔离环境,以安装与 Python 相关的依赖项。这样可以针对不同项目使用不同版本的 Python 及其包。
更深入地介绍虚拟环境超出了本文范围。请参阅Python 中的虚拟环境教程了解如何创建。
步骤 3:编写代码
语音端点有三个关键输入:
在 OpenAI 的文本转语音文档中提供了示例请求,因此我们无需重复造轮子。
示例请求如下:
按目前的写法,这段代码无法运行。
原因在于我们还没有把第 1 步生成的 API 密钥传给 OpenAI 客户端……
步骤 4:传入 API 密钥
最简单的办法是在
OpenAI()对象中添加一个api_key参数,将密钥传入。例如:
不过,在 Python 中这样做并不是最佳实践。
我们将改用 dotenv,从
.env文件中读取密钥。步骤 4.1:安装 dotenv
首先,您需要在虚拟环境中安装 dotenv。在虚拟环境中运行以下命令:
步骤 4.2:读取环境变量
安装好 dotenv 后,我们可以创建一个包含键值对的
.env文件,并将这些值设置为环境变量。这样,即便代码公开分享,我们也能隐藏密钥。
首先创建一个 .env 文件,并写入以下内容:
现在,我们可以在
main.py文件中通过 dotenv 读取环境变量。代码如下所示。
现在代码可以运行了。
代码的默认行为是输出一份朗读音频的 MP3 文件。如果您希望其他文件格式,可以将输出配置为任意受支持的格式。
自定义声音与输出
世界上有形形色色的声音和口音。
虽然很难一一涵盖,但 OpenAI 的 TTS 试图通过在 API 中集成六种独特的内置声音,来反映我们所处世界的多样性:
这些声音可传达不同的个性,您也可以按个人偏好选择。只需在客户端对象中通过 voice 参数设置您希望使用的
voice即可。查看 OpenAI 的文本转语音 API 文档,了解可用的声音。
您也可以更改输出格式。
API 的默认响应是将文本转换为 MP3 文件。不过,OpenAI 还提供了多种其他格式,以满足您的需求与偏好,例如:
要点提示:您选择的输出格式会影响音频质量、文件大小,以及与不同设备和应用的兼容性。
在语言支持方面,文本转语音模型沿用了用于语音转文本的 Whisper 模型;这些声音针对英语进行了优化,但也支持多种其他语言。
OpenAI 文本转语音 API 的真实用例
现在我们已经了解了如何设置 TTS API,接下来看看一些可实践的用法示例。
为书面博客文章或书籍配音
假设您写了一本书或一篇博客,希望通过转换成音频扩大受众。如果采用传统方式,您需要寻找配音员(或自己配音),这可能是个漫长的过程。
使用 OpenAI TTS API 可以显著缩短流程;您只需将文本文档传给 API,它就会将其转换为语音。
用多种语言生成语音音频
语言教师无需再教授大班课程,而是可以使用 OpenAI 的文本转语音 API,为学生用不同语言与方言制作个性化课程。尽管这些声音针对英语进行了优化,但该 API 仍可用于生成多种语言的音频内容。
通过流式传输实现实时音频输出
OpenAI TTS API 可用于创建比传统 TTS 系统更逼真、更富表现力的 AI 声音。电子游戏开发者可以利用此能力,将其应用于角色之上,使玩家体验更具沉浸感。
另一个用例是打造更具吸引力的虚拟助手和聊天机器人。
了解 API 限额与定价
对于付费账户,OpenAI TTS API 的速率限制从每分钟 50 次请求(RPM)起步,最大输入长度为 4096 个字符——在默认语速下约相当于 5 分钟音频。
关于 TTS 模型,定价如下:
如果您想以较低成本将 TTS API 集成到小型项目中,标准 TTS 模型可能更合适。TTS HD 模型价格略高,但提供高清音频;当音质至关重要时,这是理想选择——了解更多OpenAI 音频模型的定价。
总结
OpenAI 的文本转语音 API 是一个将文本生成高质量语音音频的端点。它内置六种声音,用户可根据用例在 TTS-1 与 TTS-1-HD 两个模型中选择;TTS-1 针对实时文本转语音优化,TTS-1-HD 则针对音质优化。
在本文中,我们介绍了:
继续学习的精选资源: