Python文本转语音(TTS)实战测评:gTTS、edge_tts与pyttsx3免费方案的效果对比与解析

在python中,已经有很多TTS相关的包,可以拿来即用,以下是我整理的一些简单免费的方案,仅供参考:

方案1:gTTS

1.1 介绍

  • 利用google的免费文本转语音API服务
  • 需要能访问谷歌的网络环境
  • 一键安装,转换速度快,转换质量一般
  • 开源地址:https://github.com/pndurette/gTTS
    官方教程:https://gtts.readthedocs.io/en/latest/index.html
  • 1.2 安装

    pip install gTTS
    

    1.3 简单使用

    from gtts import gTTS
    
    tts = gTTS(text='您好,我是一直可爱的小猪!', lang='zh')
    tts.save('test.mp3')
    

    1.4 效果展示

    效果参考:https://blog.luler.top/d/7

    方案2:edge_tts

    2.1 介绍

  • 利用微软的免费文本转语音API服务
  • 微软已禁止国内访问这个服务,需要外网环境
  • 一键安装,转换速度快,质量较好,可控选项多
  • 开源地址:https://github.com/rany2/edge-tts
  • 2.2 安装

    pip install edge_tts
    

    2.3 简单使用

  • 可以通过命令edge-tts --list-voice列出所有支持的语音,以下是常用的中文语音:
  • zh-CN-XiaoxiaoNeural – 女声,自然
  • zh-CN-YunxiNeural – 男声,自然
  • zh-CN-YunyangNeural – 男声,新闻播报风格
  • zh-CN-XiaoxuanNeural – 女声,成熟
  • zh-CN-YunxiaNeural – 男声,少年
  • zh-CN-YunjianNeural – 男声,播报解说风格
  • zh-HK-WanLungNeural – 男生,粤语
  • 代码示例:
  • import asyncio
    
    import edge_tts
    
    async def ttsWork(text, file_path, voice="zh-CN-YunxiNeural", rate="+0%", volume="+0%", proxy=None):
        communicator = edge_tts.Communicate(
            text,  # 需要转换的文本
            voice=voice,  # 配音员口音
            rate=rate,  # 语速控制
            volume=volume,  # 音量控制
            proxy=proxy  # 请求代理设置
        )
        await communicator.save(file_path)
    
    #国内环境需要设置有效的proxy,国外服务器则不需要配置proxy
    asyncio.run(ttsWork("您好,我是一直可爱的小猪!", "test.mp3", proxy="http://127.0.0.1:10808"))
    

    2.4 效果展示

  • 声音类型:zh-CN-XiaoxiaoNeural
    效果参考:https://blog.luler.top/d/7

  • 声音类型:zh-CN-YunxiNeural
    效果参考:https://blog.luler.top/d/7

  • 声音类型:zh-CN-YunyangNeural
    效果参考:https://blog.luler.top/d/7

  • 声音类型:zh-CN-XiaoxuanNeural
    效果参考:https://blog.luler.top/d/7

  • 声音类型:zh-CN-YunxiaNeural
    效果参考:https://blog.luler.top/d/7

  • 声音类型:zh-HK-WanLungNeural
    效果参考:https://blog.luler.top/d/7

  • 方案3:pyttsx3

    3.1 介绍

  • 跨系统使用,利用系统上安装的TTS引擎驱动
  • 不需要网络连接,完全离线使用
  • 安装简单,转换速度快,质量一般
  • 开源地址:https://github.com/nateshmbhat/pyttsx3
  • 3.2 安装

    window安装TTS引擎
    无需处理,一般默认支持
    linux(debian系列)安装TTS引擎
    sudo apt update && sudo apt install espeak-ng libespeak1
    macOS安装TTS引擎
    略过,没有mac电脑

    开始安装python包

    pip install pyttsx3
    

    3.3 简单使用

    import pyttsx3
    
    # 初始化语音引擎
    engine = pyttsx3.init()
    
    # 设置要说的文本
    text = "您好,我是一直可爱的小猪!"
    
    # 设置语速,默认值是200
    engine.setProperty('rate', 100)
    
    # 设置音量,默认值是1.0
    engine.setProperty('volume', 1.0)
    
    # 保存到文件
    engine.save_to_file(text, 'test.wav')
    engine.runAndWait()
    

    3.4 效果展示

    效果参考:https://blog.luler.top/d/7

    作者:计算机小手

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python文本转语音(TTS)实战测评:gTTS、edge_tts与pyttsx3免费方案的效果对比与解析

    发表回复