数学视频动画引擎Python库 -- Manim Voiceover 语音服务 Speech Services

发布于:2025-07-06 ⋅ 阅读:(17) ⋅ 点赞:(0)

文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。

Mathematical Animation Engine

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 1Location 的值。

在您调用 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 文档以了解更多信息。

参阅示例用法以开始。

风险提示与免责声明
本文内容基于公开信息研究整理,不构成任何形式的投资建议。历史表现不应作为未来收益保证,市场存在不可预见的波动风险。投资者需结合自身财务状况及风险承受能力独立决策,并自行承担交易结果。作者及发布方不对任何依据本文操作导致的损失承担法律责任。市场有风险,投资须谨慎。