前言
尝试过各种TTS的方案,一番体验下来,发现微软才是这个领域的王者,其Azure文本转语音
服务的转换出的语音效果最为自然,但Azure是付费服务,注册操作付费都太麻烦了。但在其官网上竟然提供了一个完全体
的演示功能,能够完完整整的体验所有角色语音,说话风格…
image.png
但就是不能下载成mp3
文件,所以有一些小伙伴逼不得已只好通过转录电脑的声音来获得音频文件,但这样太麻烦了。其实,能在网页里看到听到的所有资源,都是解密后的结果。也就是说,只要这个声音从网页里播放出来了,我们必然可以找到方法提取到音频文件。
本文就是记录了这整个探索实现的过程,请尽情享用~
大帅老猿
我叫大帅,一个热爱编程的老程序猿
82篇原创内容
公众号
“
本文大部分内容写于今年年初一直按在手里未发布,我深知这个方法一旦公之于众,可能很快会迎来微软的封堵,甚至直接取消网页体验的入口和相关接口。
”
解析Azure官网的演示功能
使用Chrome浏览器打开调试面板,当我们在Azure官网中点击播放
功能时,可以从network标签中监控到一个wss://
的请求,这是一个websocket
的请求。
image.png
两个参数
在请求的URL
中,我们可以看到有两个参数分别是Authorization
和X-ConnectionId
image.png
有意思的是,第一个参数就在网页的源码里,使用axios
对这个Azure文本转语音的网址发起get
请求就可以直接提取到
image.png
const res = await axios.get("https://azure.microsoft.com/en-gb/services/cognitive-services/text-to-speech/");
const reg = /token: \"(.*?)\"/;
if(reg.test(res.data)){
const token = RegExp.$1;
}