微软文本转语音 python 命令行工具

查看 135|回复 10
作者:天空宫阙   
文本转语音的简单demo
另外制作了 tampermonkey 脚本 见 https://www.52pojie.cn/thread-1606432-1-1.html
仓库地址 https://github.com/skygongque/tts/tree/main/python_cli_demo
使用代码可以不用录音直接下载MP3文件
做了一个简单的视频教程 【【无需录音完全免费】有感情的文本转语音 基于微软tts的python小工具-哔哩哔哩】 https://b23.tv/abLjH4G
官方的地址
[/color">https://azure.microsoft.com/zh-cn/services/cognitive-services/text-to-speech/#overview
声明
仅用于学习交流禁止商用
项目的目的和相关说明
  • 项目的核心功能是,可以直接下载转换后的MP3文件,微软官方的网页版demo不能直接下载转换后的MP3文件(直接录音对于转换文字较多时不是很方便)

    使用方法
    安装依赖
    pip install -r requirements.txt
    运行
    python tts.py --input SSML.xml

    使用python 运行tts.py,通过参数input传入SSML.xml文件的路径

    或者可以通过传入output 传入希望保存的文件名
    python tts.py --input SSML.xml --output 保存文件名
    SSML.xml文件的示例如下
       
            
            这个是 SSML 语音合成标记语言
            
       
       
            
            这个是晓晓的声音
            
       
       
            
            这个是云扬的声音。
            
       
    voice name 声音的名字
    rate 速度
    pitch 语调  
    如果对js逆向感兴趣
    核心的请求是这个 wss://eastus.tts.speech.microsoft.com/cognitiveservices/websocket/v1


    image-20220313185522719.png (580.73 KB, 下载次数: 0)
    下载附件
    2022-3-13 19:15 上传

    这个请求有两个参数Authorization和X-ConnectionId
    其中Authorization来自网页源代码token,可以直接用正则取


    image-20220313184024591.png (131.53 KB, 下载次数: 0)
    下载附件
    2022-3-13 19:15 上传

    X-ConnectionId稍微复杂一点,搜索 cognitiveservices/websocket/v1定位到如下位置,发现已经生成,往下追一步


    image-20220313184200274.png (541.25 KB, 下载次数: 0)
    下载附件
    2022-3-13 19:16 上传

    发现是createNoDashGuid生成的


    image-20220313184347146.png (463.61 KB, 下载次数: 0)
    下载附件
    2022-3-13 19:16 上传

    继续追发现是一个uuid4


    image-20220313184505031.png (114.58 KB, 下载次数: 0)
    下载附件
    2022-3-13 19:28 上传

    python 模拟非常简单
    import uuid
    print(uuid.uuid4().hex.upper())
    websocket部分
    上述请求之后,改成websocket传递
    客户端发送文本,服务端返回二进制
    发送的内容示例
    Path: speech.config
    X-RequestId: 1570E9705B67461494126EE84ED36CD9
    X-Timestamp: 2022-03-13T10:48:30.067Z
    Content-Type: application/json
    {"context":{"system":{"name":"SpeechSDK","version":"1.19.0","build":"JavaScript","lang":"JavaScript"},"os":{"platform":"Browser/Win32","name":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36","version":"5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36"}}}
    Path: synthesis.context
    X-RequestId: 1570E9705B67461494126EE84ED36CD9
    X-Timestamp: 2022-03-13T10:48:30.068Z
    Content-Type: application/json
    {"synthesis":{"audio":{"metadataOptions":{"bookmarkEnabled":false,"sentenceBoundaryEnabled":false,"visemeEnabled":false,"wordBoundaryEnabled":false},"outputFormat":"audio-24khz-160kbitrate-mono-mp3"},"language":{"autoDetection":false}}}
    第三个发送的包中包含需要转换的文本
    Path: ssml
    X-RequestId: 1570E9705B67461494126EE84ED36CD9
    X-Timestamp: 2022-03-13T10:48:30.068Z
    Content-Type: application/ssml+xml
    You can replace this text with any text you wish. You can either write in this text box or paste your own text here.
    Try different languages and voices. Change the speed and the pitch of the voice. You can even tweak the SSML (Speech Synthesis Markup Language) to control how the different sections of the text sound. Click on SSML above to give it a try!
    Enjoy using Text to Speech!
    然后服务器返回一段二进制,只需要提取Path:audio后面的内容拼接就是我们需要的mp3文件。


    image-20220313184910519.png (447.46 KB, 下载次数: 0)
    下载附件
    2022-3-13 19:28 上传

    完整代码
    https://github.com/skygongque/tts

    下载次数, 文本

  • Piz.liu   


    夕阳枫 发表于 2022-3-13 19:44
    确实很需要文本转语音软件,但是就是看不懂,有没有简单些的,谢谢。

    我给你总结一下
    第一步电脑上安装python
    第二步去https://github.com/skygongque/tts  把项目克隆本地(就是把文件都下载到本地)
    第三步cmd中进到文件保存目录 执行pip install -r requirements.txt
    第四部改SSML.xml里面你想用的文字和声音
    第五步cmd中执行python tts.py --input SSML.xml 就生成mp3了
    拣尽寒枝不肯栖   

    很需要,很喜欢,就是看不懂
    duckeyxia   

    跟讯飞比如何?
    夕阳枫   

    确实很需要文本转语音软件,但是就是看不懂,有没有简单些的,谢谢。
    yidiandian   

    有没有简单的。
    cxliuping   

    能不能将语言转为文字的呢?
    pikamimi   

    表示看不懂,只会用现在软件
    天空宫阙
    OP
      


    duckeyxia 发表于 2022-3-13 20:30
    跟讯飞比如何?

    微软文本转语音的效果可以看 https://www.bilibili.com/video/BV1Zy4y1j7i8
    使用代码可以不用录音直接下载MP3文件
    rain1986   

    这个能不能将语言转为文字的呢?
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部