azure-tts.el --- Emacs 集成 Azure 文字转语音 API

原理很简单,调用官方 API 下载音频文件,然后使用 ffplay (FFmpeg) 或 afplay (MacOS 自带) 播放音频。未来计划调用 azure sdk 生成播放带口型的视频 (鸽鸽)。

官方的 API 每月免费额度 50 万单词,足够用了。注册帐号需要信用卡,国内信用卡可用。

功能特点:

  • 依赖少,只调用了外部播放器
  • 异步,下载和播放的时候不会卡住 Emacs
  • 有缓存,相同的文本内容不会重复下载,省钱
  • 用法简单,选中文本之后 M-x azure-tts-play-region 即可,行为非常容易预测
  • C-u + azure-tts-play-region 可以减速 20% 乘以 C-u 次数进行播放
  • 单文件,纯 emacs lisp 实现,方便修改扩展
  • 吹不下去了 :clown_face:

欢迎试用 :smiling_face_with_three_hearts: ~

链接: https://gitee.com/blindingdark/BEmacs/raw/master/vendor/azure-tts.el

5 个赞

从我的研究看, 语音生成的时间是音频时间的2倍, Azure 的语音生成时间是多少呢?

挺快的,不过我这个还不是流式播放,所以大段内容需要全部下载下来才能播放,所以这样跟网速有关 :rofl:

1 个赞

有个免费的库 GitHub - rany2/edge-tts: Use Microsoft Edge's online text-to-speech service from Python (without needing Microsoft Edge/Windows or an API key)

不需要API

但是微软这个是不是只能说英文啊? 我用了中文没效果呀。

换一下 voice 就可以说中文了。

你可以用 en-US-JennyMultilingualNeural,这个会 13 种语言,包括中日韩,第一语言是英语,不过除了英文别的语言不能调速。

如果你想注册 API 的话,注册地点记得选 美国东部 也就是 East US,这个地区支持最多的功能,比如别的地区可能不支持这个多语言的模型

1 个赞