使用pyttsx3实现简单tts服务
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服务的更多相关文章
- 初探机器学习之使用讯飞TTS服务实现在线语音合成
最近在调研使用各个云平台提供的AI服务,有个语音合成的需求因此就使用了一下科大讯飞的TTS服务,也用.NET Core写了一个小示例,下面就是这个小示例及其相关背景知识的介绍. 一.什么是语音合成(T ...
- 【阿里云产品公测】简单日志服务SLS使用评测 + 教程
[阿里云产品公测]简单日志服务SLS使用评测 + 教程 评测介绍 被测产品: 简单日志服务SLS 评测环境: 阿里云基础ECS x2(1核, 512M, 1M) 操作系统: CentOS 6.5 x6 ...
- socket编程,简单多线程服务端测试程序
socket编程,简单多线程服务端测试程序 前些天重温了MSDN关于socket编程的WSAStartup.WSACleanup.socket.closesocket.bind.listen.acce ...
- winsock 编程(简单客户&服务端通信实现)
winsock 编程(简单客户&服务端通信实现) 双向通信:Client send message to Server, and if Server receive the message, ...
- 用nodejs搭建一个简单的服务监听程序
作为一个从业三年左右的,并且从事过半年左右PHP开发工作的前端,对于后台,尤其是对以js语言进行开发的nodejs,那是比较有兴趣的,虽然本身并没有接触过相关的工作,只是自己私下做的一下小实验,但是还 ...
- S3 服务(Simple Storage Service简单存储服务) 简介(与hdfs同一级)
图1 spark 相关 亚马逊云存储之S3(Simple Storage Service简单存储服务) (转 ) S3是Simple Storage Service的缩写,即简单存储服务.亚马逊的名 ...
- 搭建简单Django服务并通过HttpRequester实现GET/POST http请求提交表单
调试Django框架写的服务时,需要模拟客户端发送POST请求,然而浏览器只能模拟简单的GET请求(将参数写在url内),网上搜索得到了HttpRequester这一firefox插件,完美的实现了模 ...
- lucene构建restful风格的简单搜索引擎服务
来自于本人博客: lucene构建restful风格的简单搜索引擎服务 本人的博客如今也要改成使用lucene进行全文检索的功能,因此在这里把代码贴出来与大家分享 一,文件夹结构: 二,配置文件: 总 ...
- 简单聊聊服务发现(redis, zk,etcd, consul)
什么是服务发现? 服务发现并没有怎样的高深莫测,它的原理再简单不过.只是市面上太多文章将服务发现的难度妖魔化,读者被绕的云里雾里,顿觉自己智商低下不敢高攀. 服务提供者是什么,简单点说就是一个HTTP ...
随机推荐
- Linux常用文件管理命令详解
cat cat命令用于连接文件并打印到标准输出设备上. 命令语法:cat [参数] [文件名] 参数说明: 参数 说明 -n 由1开始对所有输出的行数进行编号. -b 由1开始对所有输出的行数进行编号 ...
- python链接mqtt订阅与发布
什么是mqtt: MQTT 全称为 Message Queuing Telemetry Transport(消息队列遥测传输)是一种基于发布/订阅范式的"轻量级"消息协议.该协议构 ...
- mybatis的几种like查询
oracle数据库: Java代码 SELECT * FROM user WHERE name like CONCAT('%',#{name},'%') 或 Java代码 SELECT * FROM ...
- 5种常见的Docker Compose错误
在构建一个容器化应用程序时,开发人员需要一种方法来引导他们正在使用的容器去测试其代码.虽然有几种方法可以做到这一点,但 Docker Compose 是最流行的选择之一.它让你可以轻松指定开发期间要引 ...
- 关于OAuth2.0 Authorization Code + PKCE flow在原生客户端(Native App)下集成的一点思考
写在前面 前几天看了园友的一篇文章被广泛使用的OAuth2.0的密码模式已经废了,放弃吧 被再次提起: Implicit Flow Password Grant,均已被标记为Legacy,且OAuth ...
- Golang 常见设计模式之装饰模式
想必只要是熟悉 Python 的同学对装饰模式一定不会陌生,这类 Python 从语法上原生支持的装饰器,大大提高了装饰模式在 Python 中的应用.尽管 Go 语言中装饰模式没有 Python 中 ...
- 内网渗透----Linux下信息收集
基础信息 1.系统类型 cat /etc/issue查看系统名称 Lsb-release查看系统名称.版本号 2. 内核版本 uname –a 查看所有信息 ls /root |grep vmlinu ...
- 突发!Gitee 图床,废了!
大家好,我是鱼皮,这两天又发生了一件挺意外的事情:Gitee 的图床废了! 图床:指储存图片的服务器,便于在网上展示图片 昨天晚上,星球里不止一位小伙伴发帖子表示自己网站.文章中的图片竟然全部变成了 ...
- 深入浅出SpringBoot
- Collection框架中实现比较要实现什么接口?
Java集合框架中需要比较大小的集合包括TreeMap.TreeSet,其中TreeMap会根据key-value对中key的大小进行排序,而TreeSet则会对集合元素进行排序. 因此TreeMap ...