pyttsx3的地址:https://pypi.org/project/pyttsx3/
帮助文档地址:https://pyttsx3.readthedocs.org/
安装pyttsx3依赖包:
pip install pyttsx3
接口介绍
1、init接口
使用的具体引擎可以在init里面指定:
- sapi5 - windows环境
- nsss - Mac OS X环境
- espeak - 非windows和Mac OS X 的其它系统
2、engine接口
- connect
- disconnect
- endLoop
- getProperty
- isBusy
- iterate
- runAndWait
- save_to_file
- say
- setProperty
- startLoop
- stop
使用示例
#! /usr/bin/env python3 #-*- coding:utf-8 -*- # pip install pyttsx3 import pyttsx3 def onStart(name): print('starting',name) def onWord(name,location,length): print('word',name,location,length) def onEnd(name,completed): print('finishing',name,completed) engine = pyttsx3.init() # 注册回调函数 engine.connect('started-utterance', onStart) engine.connect('started-word', onWord) engine.connect('finished-utterance', onEnd) # 语音转文本测试(直接播放) engine.say("I will speak this text") engine.say('I will speak this text!', 'speak') # 注册 speak 关键字,进行事件通知 engine.say("我可以说话了") # 语音转文本测试(文件存储到磁盘) engine.save_to_file('我可以说话了', 'test.mp3') # 运行并等待 engine.runAndWait()
2、使用pyttsx3搭建简单的tts服务
主逻辑代码如下:
def text2File(text,dstFile): engine = pyttsx3.init() engine.save_to_file(text,dstFile) engine.runAndWait() class MainHandler(tornado.web.RequestHandler): def get(self): tmpFile = "1.mp3" print("get",self.request.arguments) text = self.get_query_argument("text").strip() print("text : %s" % text) if len(text) > 0 : text2File(text,tmpFile) self.set_header('content-type', 'audio/mpeg') fbin = open(tmpFile,"rb").read() self.set_header('Content-Length', len(fbin)) self.set_header('Content-Disposition', 'attachment;filename="%s"'%tmpFile) self.write(fbin) self.finish() else: self.set_header('content-type', 'application/json') self.finish(json.dumps({"result" : "input text "})) def post(self): print("post") print(self.request.arguments)
运行效果如下:
可关注微信公众号(聊聊博文)后回复 2022040401 获得提取码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用pyttsx3实现简单tts服务 - Python技术站