使用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 ...
随机推荐
- Docker 部署xxl-job 报错:xxl-rpc remoting error(connect timed out), for url : xxxxxx
使用Docker 部署的xxl-job,当调度中心和执行器部署在不同的容器内,此时xxl-job调用执行器的服务就会报: address:http://172.0.0.1:8841/ code:500 ...
- props配置
配置项props 功能:让组件接收外部传过来的数据[相当于微信转账:有一个转账人转钱给接收者,接收者需要确认接收] (1)传递数据: <Demo name="xxx"> ...
- 『现学现忘』Docker基础 — 22、使用Docker安装Nginx
目录 步骤1:搜索镜像 步骤2:下载Nginx镜像 步骤3:运行Nginx镜像 步骤4:进行本机测试 步骤5:进入容器内操作 步骤6:测试外网访问容器 步骤1:搜索镜像 使用docker search ...
- 关于linux命令的随笔第一篇
大多数的情况下,我们都是通过ssh客户端远程连接服务器去进行维护访问,所以我们必须要掌握linux命令 linux命令大约有上百种,但是并非所有命令都属于常用命令,所以不需要死记硬背,多用多百度就可以 ...
- Java工具之Myeclipse程序调试
步骤1: 分析错误,设置断点 步骤2: 启动调试 步骤3: 单步运行 (1)调试启动后,运行到设置断点的代码行将停住 (2)点击F6键可以单步运行程序,观察程序运行过程. (3)使用F5进入方法中进行 ...
- Java基础—构造方法
1.构造方法概述 构造方法是一种特殊的方法,用来创建对象,当我们不定义时,系统会默认给出一个无参构造方法:一旦我们定义了任意的构造方法,系统就不会给出默认的无参构造方法 格式如下: public ca ...
- 5月16日 python学习总结 DBUtils模块、orm 和 cookie、session、token
一.DBUtils模块 介绍 The DBUtils suite is realized as a Python package containing two subsets of modules, ...
- linux下串口测试程序
通过简单的参数配置,执行文件+串口号+波特率 #include <stdio.h> #include <stdlib.h> #include <unistd.h> ...
- 测试odbc连接sqlsever数据库是否成功的代码
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<windows.h> 4 #include<sql.h ...
- mysql主从异步复制过程
mysql是现在普遍使用的数据库,但是如果宕机了必然会造成数据丢失.为了保证mysql数据库的可靠性.就要会一些提高可靠性的技术. 主从复制原理如下. slave(从服务器) master(主服务器) ...