rany2/edge-tts

Use Microsoft Edge's online text-to-speech service from Python WITHOUT needing Microsoft Edge

edge‑tts – Microsoft Edge 云 TTS 的 Python 封装

它是什么 – 一个小型 Python 包,允许你调用 Microsoft Edge 浏览器使用的文本转语音服务。它可以用作代码中的库,或通过两个命令行工具使用:

  • edge-tts – 从纯文本生成音频(以及可选的字幕文件)。
  • edge‑playback – 生成并立即使用 mpv 播放器播放语音(Windows 上使用内置播放器)。

为什么重要 – 它提供免费、高质量的神经语音(数百种语言/口音),无需 Azure 凭据。该包处理 HTTP 调用、语音选择,以及语速、音量和音调等可选调整。

安装

# 库 + CLI
pip install edge-tts
# 或者,如果你只需要 CLI 工具并希望隔离
pipx install edge-tts

典型命令行用法

# 保存 MP3 和 SRT 字幕文件
edge-tts --text "Hello, world!" \
          --write-media hello.mp3 \
          --write-subtitles hello.srt

# 立即播放(Linux/macOS 上需要 mpv)
edge-playback --text "Hello, world!"

你可以使用 edge-tts --list-voices 列出所有可用语音,并通过 --voice <voice-id> 选择。

语音控制 – 该服务提供大量语音(例如 ar-EG-SalmaNeural)。README 中显示了语音名称、性别、内容类别和个性标签的表格。

音频调整 – 直接从 CLI 调整语音特性:

  • --rate <pct> – 语速(例如 --rate=-50%)。
  • --volume <pct> – 音量。
  • --pitch <Hz> – 音调偏移。 负值必须用引号括起来,如 --rate=-50%,以避免被解析为标志。

进度反馈 – 在交互式终端中运行时,会显示 tqdm 风格的进度条,显示已接收的音频量。使用 --no-progress 可抑制它。

作为库使用 – 在 Python 中导入 edge_tts 并调用其异步 API。仓库的 examples/ 文件夹和 src/edge_tts/util.py 辅助文件中提供了示例入口点。

实际采用者 – 该包已被用于:

  • Home Assistant 的 hass-edge-tts 集成。
  • Podcastfy 项目,用于生成播客旁白。
  • tts-samples,一个用于语音选择的 MP3 样本集合。

结论 – edge‑tts 是一个实用、零成本的 Microsoft 神经 TTS 桥梁,适用于脚本、机器人、家庭自动化或任何需要语音输出而无需处理 Azure 身份验证的 Python 项目。

相关

  • 项目
  • 项目
  • 项目
  • 项目