文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。
Manim Voiceover 是一个为 Manim 打造的专注于语音旁白的插件:
- 直接在 Python 中添加语音旁白: 无需使用视频编辑器,即可为 Manim 视频添加语音旁白。
- 在渲染期间录制旁白: 通过简单的命令行界面(参见
RecorderService
),可使用麦克风在渲染过程中录制语音旁白。 - 使用 AI 生成旁白: 利用多种免费及付费服务,开发时可直接使用 AI 自动生成的配音。
- 动画逐词时间标记: 实现动画与语音旁白的逐词时间标记同步,即根据语音旁白中特定词语触发相应的动画效果。即使是录制的音频,此功能也能实现。这得益于 OpenAI Whisper 技术的支持。
语音服务
Manim Voiceover 可以与各种语音合成器集成,以生成旁白音频。以下是可用服务的比较,包括它们的优缺点以及如何设置。
选择语音服务
Manim Voiceover 定义了 SpeechService
类,用于添加新的语音合成器。以下介绍的类都是从 SpeechService
派生的。
语音服务 | 质量 | 是否可以离线运行 | 是否付费/需要账户 | 注意事项 |
---|---|---|---|---|
RecorderService |
不适用 | 不适用 | 不适用 | 这是一个实用类,用于通过麦克风录制自己的旁白。 |
AzureService |
非常好,类似人类 | 否 | 是 | Azure 提供每月 500 分钟的免费 TTS 配额。然而,注册仍需要信用卡或借记卡。有关详细信息,请参阅 Azure 免费账户常见问题解答。 |
ElevenLabsService |
非常好,类似人类 | 否 | 是 | 需要 ElevenLabs 账户。点击此处注册。 |
CoquiService |
好,类似人类 | 是 | 否 | 需要 PyTorch 才能运行。在某些平台上可能难以设置。 |
GTTSService |
好 | 否 | 否 | 这是一个由 Google 补贴的免费 API,因此未来可能会停止工作。 |
OpenAIService |
非常好,类似人类 | 否 | 是 | 需要 OpenAI 开发者账户。请参阅平台以注册,并查看定价页面以了解更多信息。 |
PyTTSX3Service |
差 | 是 | 否 | 需要 espeak。在 Mac 上运行不可靠。 |
可用语音服务的比较
我们计划提供一个可以在本地免费运行的高质量 TTS 引擎。如果您有任何建议,请在 Discord 服务器中告诉我们。
RecorderService
这不是一个语音合成器,而是一个实用类,用于通过麦克风录制自己的旁白。它提供了一个命令行界面,以便在渲染过程中录制旁白。
为了使用 RecorderService
,请安装带有 recorder
额外组件的 Manim Voiceover:
pip install "manim-voiceover[recorder]"
请参阅示例用法以开始。
AzureService
目前,Manim Voiceover 中可用的最高质量的文本到语音服务是 Microsoft Azure 语音服务。要使用它,您需要创建一个 Azure 账户。
提示:Azure 目前每月提供 500 分钟的免费 TTS。这对于大多数项目来说已经足够。
为了使用 AzureService
,请安装带有 azure
额外组件的 Manim Voiceover:
pip install "manim-voiceover[azure]"
然后,您需要找到您的订阅密钥和服务区域:
- 登录到 Azure 门户并创建一个新的语音服务资源。
- 转到 Azure 认知服务页面。
- 点击您创建的资源并转到
Keys and Endpoint
选项卡。复制Key 1
和Location
的值。
在您调用 Manim 的同一目录中创建一个名为 .env
的文件,其中包含您的身份验证信息。
AZURE_SUBSCRIPTION_KEY="..." # 在此处插入 Key 1
AZURE_SERVICE_REGION="..." # 在此处插入 Location
请参阅 Azure 文档以了解更多信息。
请参阅示例用法以开始。
CoquiService
Coqui TTS 是一个开源的神经文本到语音引擎。它是 Mozilla TTS 的一个分支,而 Mozilla TTS 是 Tacotron 2 的一个实现。它是一个非常好的 TTS 引擎,能够产生类似人类的语音。然而,它需要 PyTorch 才能运行,这在某些平台上可能难以设置。
为了使用 CoquiService
,请安装带有 coqui
额外组件的 Manim Voiceover:
pip install "manim-voiceover[coqui]"
如果您遇到 PyTorch 或 NumPy 的问题,请尝试将您的 Python 版本更改为 3.9。
请参阅示例用法以开始。
GTTSService
gTTS 是一个文本到语音库,它封装了 Google 翻译的文本到语音 API。它需要互联网连接才能工作。
为了使用 GTTSService
,请安装带有 gtts
额外组件的 Manim Voiceover:
pip install "manim-voiceover[gtts]"
请参阅示例用法以开始。
OpenAIService
OpenAI 提供了一个文本到语音服务。这是一个通过 API 提供的服务,因此它需要互联网连接才能工作。它还需要一个 API 密钥才能使用。请在此处注册。
为了使用 OpenAIService
,请安装带有 openai
额外组件的 Manim Voiceover:
pip install "manim-voiceover[openai]"
然后,您需要找到您的 API 密钥:
- 登录到OpenAI 平台并从左侧面板中点击 Api Keys。
- 点击创建一个新的密钥并复制它。
在您调用 Manim 的同一目录中创建一个名为 .env
的文件,其中包含您的身份验证信息。
OPENAI_API_KEY="..." # 在此处插入密钥。它应该以 "sk-" 开头
请参阅 OpenAI 文档以了解更多信息。
请参阅示例用法以开始。
PyTTSX3Service
pyttsx3 是一个文本到语音库,它封装了 espeak,这是一个形式合成语音合成器。
为了使用 PyTTSX3Service
,请安装带有 pyttsx3
额外组件的 Manim Voiceover:
pip install "manim-voiceover[pyttsx3]"
请参阅示例用法以开始。
ElevenLabsService
ElevenLabs 提供了最自然的语音服务 API 之一。它拥有一系列逼真且富有情感的声音,并且还允许您通过上传几分钟的语音来克隆自己的声音。要使用它,您需要在 Eleven Labs 创建一个账户。
提示:ElevenLabs 目前每月提供 10,000 个字符的免费 TTS,并且最多可以使用 3 个自定义声音。
为了使用 ElevenLabsService
,请安装带有 elevenlabs
额外组件的 Manim Voiceover:
pip install "manim-voiceover[elevenlabs]"
然后,您需要找到您的 API 密钥。
- 登录到 ElevenLabs 门户并转到您的个人资料以获取密钥
- 将环境变量
ELEVEN_API_KEY
设置为您的密钥
在您调用 Manim 的同一目录中创建一个名为 .env
的文件,其中包含您的身份验证信息。
ELEVEN_API_KEY="..." # 在此处插入 Key 1
请参阅 ElevenLabs 文档以了解更多信息。
请参阅示例用法以开始。
风险提示与免责声明
本文内容基于公开信息研究整理,不构成任何形式的投资建议。历史表现不应作为未来收益保证,市场存在不可预见的波动风险。投资者需结合自身财务状况及风险承受能力独立决策,并自行承担交易结果。作者及发布方不对任何依据本文操作导致的损失承担法律责任。市场有风险,投资须谨慎。