pyttsx3 初识

2020-04-05  本文已影响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

六、官方文档

详细文档请看:官方文档

上一篇下一篇

猜你喜欢

热点阅读