美文网首页
pyttsx3 初识

pyttsx3 初识

作者: 晨磊的微博 | 来源:发表于2020-04-05 16:35 被阅读0次

    pyttsx3 初识

    一、pyttsx3 概述

    pyttsx3是Python中的文本到语音转换库。与其他库不同,它可以脱机工作,并且与Python 2和3兼容。

    二、安装

    安装命令

    pip3 install  pyttsx3
    

    三、简单示例

    #coding=utf-8
    import pyttsx3
    """ 语音播放 Hello World """
    pyttsx3.speak("Hello World!")
    

    或者

    #coding=utf-8
    import pyttsx3
    """ 语音播放 Hello World """
    engine = pyttsx3.init()
    engine.say("Hello World!")
    engine.runAndWait()
    

    PS:其实 pyttsx3.speak 内部实现就是第二端代码


    0B7D86AE-0130-4AB8-94A9-FB590AFF54B6.png

    四、进阶示例

    import pyttsx3
    engine = pyttsx3.init() # object creation
    """ 把语音存储到文件 """
    engine.save_to_file("Hello World!!!",'~/abc.mp3')
    
    """更改速率"""
    rate = engine.getProperty('rate')   # getting details of current speaking rate
    print (rate)                        #printing current voice rate
    engine.setProperty('rate', 125)     # setting up new voice rate
    
    
    """更改音量"""
    volume = engine.getProperty('volume')   #getting to know current volume level (min=0 and max=1)
    print (volume)                          #printing current volume level
    engine.setProperty('volume',1.0)    # setting up volume level  between 0 and 1
    
    """更改声音"""
    voices = engine.getProperty('voices')       #getting details of current voice
    #engine.setProperty('voice', voices[0].id)  #changing index, changes voices. o for male
    engine.setProperty('voice', voices[1].id)   #changing index, changes voices. 1 for female
    
    engine.say("Hello World!")
    engine.say('My current speaking rate is ' + str(rate))
    engine.runAndWait()
    engine.stop()
    

    五、常见错误

    1. OSError: libespeak.so.1: cannot open shared object file: No such file or directory
    File "/usr/python/lib/python3.7/site-packages/pyttsx3/drivers/espeak.py", line 9, in <module>
        from . import _espeak, toUtf8, fromUtf8
      File "/usr/python/lib/python3.7/site-packages/pyttsx3/drivers/_espeak.py", line 18, in <module>
        dll = cdll.LoadLibrary('libespeak.so.1')
      File "/usr/python/lib/python3.7/ctypes/__init__.py", line 434, in LoadLibrary
        return self._dlltype(name)
      File "/usr/python/lib/python3.7/ctypes/__init__.py", line 356, in __init__
        self._handle = _dlopen(self._name, mode)
    OSError: libespeak.so.1: cannot open shared object file: No such file or directory
    

    centos 、debian 需要安装 espeak

    yum install espeak
    
    1. espeak centos 中文问题
    git clone https://github.com/harry0731/espeak.git
    cd espeak/dictsource/
    espeak --compile=zh
    
    1. sh: ffmpeg: 未找到命令
    #安装EPEL Release
    sudo yum install -y epel-release rpm
    #如果出现缺少Code提示,就执行此条命令
    sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 
    #导入一个Code
    sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro 
    #安装nux-dextop 源
    sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm 
    #查看repo源是否安装成功
    sudo yum repolist 
    #安装ffmpeg
    sudo yum install -y ffmpeg
    #验证
    ffmpeg -version
    

    六、官方文档

    详细文档请看:官方文档

    相关文章

      网友评论

          本文标题:pyttsx3 初识

          本文链接:https://www.haomeiwen.com/subject/kvfcuhtx.html