解决pyttsx3无法封装的问题
一、python3下面的pyttsx3正常可以使用,类似下面:
import pyttsx3 engine = pyttsx3.init() rate = engine.getProperty('rate') engine.setProperty('rate', rate-60) engine.say('123') engine.runAndWait()
二、但是一旦用pyinstaller封装成exe后,运行就会提示
1. pyttsx3.drivers模块找不到
2. 在dreiver.py(pyttsx3的配置文件)加上from pyttsx3.drivers import sapi5 依然会提醒错误。
三、细看win下面调用的drivers模块为sapi5, 里面依然是封装了win32com.client.Dispatch('SAPI.SPVoice')这个模块,可以直接用win32com.client自己改写封装就好,不用pyttsx3模块。
以上这篇解决pyttsx3无法封装的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
pyttsx3实现中文文字转语音的方法
如下所示: import pyttsx3 import io import sys sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') engine = pyttsx3.init() engine.setProperty('voice', 'zh') f = open("result.txt", 'r') line = f.readline() while line: line = f.readline(
-
Python将文字转成语音并读出来的实例详解
前言 本篇文章主要介绍,如何利用Python来实现将文字转成语音.将文字转成语音主要有两种不同的实现方法:先将文字转成语音,然后再通过读取语音实现发音.直接调用系统内置的语音引擎实现发音,后一种方法的实现主要利用第三方库. 环境 Python版本:Anaconda 4.4.10 操作系统:win10 注意:在使用第三方库的时候,不同的操作系统和Python版本代码可能有所差别. 调用api 可以调用第三方的语音合成api生成音频文件,然后再播放音频文件即可,这里我使用的是百度语音合成api. 1
-
python 利用pyttsx3文字转语音过程详解
这篇文章主要介绍了python 利用pyttsx3文字转语音过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 # -*- coding: utf-8 -*- import pyttsx3 engine = pyttsx3.init() with open("all.txt",'r',encoding='utf-8') as f: while 1: line = f.readline() print(line, end = '')
-
Python3从零开始搭建一个语音对话机器人的实现
01-初心缘由 最近在研究语音识别方向,看了很多的语音识别的资料和文章,了解了一下语音识别的前世今生,其中包含了很多算法的演变,目前来说最流行的语音识别算法主要是依赖于深度学习的神经网络算法,其中RNN扮演了非常重要的作用,深度学习的应用真正让语音识别达到了商用级别.然后我想动手自己做一个语音识别系统,从GitHub上下载了两个流行的开源项目MASR和ASRT来进行复现,发现语音识别的效果没有写的那么好,其中如果要从零来训练自己的语言模型势必会非常耗时. 因此,就有了一个新的想法,借助一些开源的
-
更新pip3与pyttsx3文字语音转换的实现方法
我使用的python版本是3.5.2 今天想做个语音读取的小脚本,在网上查了一下发现python里有个pyttsx可以识别文字, 打算通过pip3 install pyttsx安装包,结果报错, 然后试了一下发现不行,去网上查了一下发现pyttsx3才行, pip3 uninstall pyttsx3 pip3 install pyttsx3成功 这里是参考网页:https://pyttsx3.readthedocs.io/en/latest/ 点击打开链接 代码如下: # -*- coding
-
python 实现语音聊天机器人的示例代码
前言 在不远的将来,实现一定程度上的语音支持将成为日常科技的基本要求,整合了语音识别的python程序提供了其他技术无法比拟的交互性和可访问性.最重要的是,在python程序中实现语音识别非常简单.整个代码实现下来还不到150行. 原理简介 许多现代语音识别系统会在HMM识别之前使用神经网络,通过特征变换和降维技术来简化语音信号,也可以使用语音活动检测器将音频信号减少到可能包含语音的部分. 幸运的是,对于python来讲,一些语音识别的服务可通过API在线使用,且其中大部分也提供了Python
-
使用python实现语音文件的特征提取方法
概述 语音识别是当前人工智能的比较热门的方向,技术也比较成熟,各大公司也相继推出了各自的语音助手机器人,如百度的小度机器人.阿里的天猫精灵等.语音识别算法当前主要是由RNN.LSTM.DNN-HMM等机器学习和深度学习技术做支撑.但训练这些模型的第一步就是将音频文件数据化,提取当中的语音特征. MP3文件转化为WAV文件 录制音频文件的软件大多数都是以mp3格式输出的,但mp3格式文件对语音的压缩比例较重,因此首先利用ffmpeg将转化为wav原始文件有利于语音特征的提取.其转化代码如下: fr
-
解决pyttsx3无法封装的问题
一.python3下面的pyttsx3正常可以使用,类似下面: import pyttsx3 engine = pyttsx3.init() rate = engine.getProperty('rate') engine.setProperty('rate', rate-60) engine.say('123') engine.runAndWait() 二.但是一旦用pyinstaller封装成exe后,运行就会提示 1. pyttsx3.drivers模块找不到 2. 在dreiver.py
-
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
项目类型:vue+vux+axios 刚开始,把Axios封装在了http.js文件里面,然后为了使用VUX的提示框消息,把拦截器直接写在了main.js里面.直接调用接口,一切正常. 然而因为返回值有统一的code错误代码提示,所以在拦截器里面加入了code的判断以便统一返回值.刚开始一切都是按照预期的结果来走的.就在一个夜黑风高的晚上,我头晕眼花的按F5手动刷新了一下页面,惊奇的发现拦截器失效了,并没有拦截外面的Coode Json代码层,而是直接把服务器的全部json数据劈头盖脸的砸在了我
-
C#中的扩展方法详解
扩展方法使你能够向现有类型"添加"方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用. 以上是msdn官网对扩展方法的描述,现在我通过一个情景例子来对此进行阐释.假设一个控制台程序class Program{}里面的主函数如下: static void Main(string[] args) { DateTime now = DateTime.Now; string time = now.ToStri
-
为什么Java中继承多数是有害的
大多数好的设计者象躲避瘟疫一样来避免使用实现继承(extends 关系).实际上80%的代码应该完全用interfaces写,而不是通过extends."Java设计模式"一书详细阐述了怎样用接口继承代替实现继承.这篇文章描述设计者为什么会这么作. Extends是有害的:也许对于Charles Manson这个级别的不是,但是足够糟糕的它应该在任何可能的时候被避开."JAVA设计模式"一书花了很大的部分讨论用interface继承代替实现继承. 好的设计者在他的代
-
ASP.NET Core整合Zipkin链路跟踪的实现方法
前言 在日常使用ASP.NET Core的开发或学习中,如果有需要使用链路跟踪系统,大多数情况下会优先选择SkyAPM.我们之前也说过SkyAPM设计确实比较优秀,巧妙的利用DiagnosticSource诊断跟踪日志,可以做到对项目无入侵方式的集成.其实还有一款比较优秀的链路跟踪系统,也可以支持ASP.NET Core,叫Zipkin.它相对于SkyWalking来说相对轻量级,使用相对来说比较偏原生的方式,而且支持Http的形式查询和提交链路数据.因为我们总是希望能拥有多一种的解决方
-
Python 利用argparse模块实现脚本命令行参数解析
study.py内容如下 #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'shouke' import argparse def argparseFunc(): ''' 基于argparse模块实现命令参数解析功能 执行示例: python study.py -i 172.19.7.236 -p 8080 -a -r python study.py --ip 172.19.7.236 --port 7077 --auth -w
-
Spring Boot统一返回体的踩坑记录
前言 在Spring Boot项目中我们可以通过RestControllerAdvice配合实现ResponseBodyAdvice<T>接口来保证Spring MVC接口具有统一的返回格式,以保证前端同学能够封装统一的数据接收工具.但是很多网上的文章并没有对实际开发中的细节作出更多的讲解.今天胖哥就来分享一下我的采坑经历,也算作一个总结. 控制作用范围 我记得在前面关于Swagger3的文章中提过,如果我们不指定范围将导致Swagger无法识别接口的元信息.因此如果你使用了Swagger必须
-
Vue.js函数式组件的全面了解
目录 前言 React 函数式组件 Vue(2.x) 中的函数式组件
-
thinkphp中连接oracle时封装方法无法用的解决办法
最近收集了一些关于THinkPHP连接Oracle数据库的问题,有很多朋友按照连接mysql的方法来操作,导致有一些方法在Oreale中无法正常使用.比如说:findAll,Select方法无法使用,获取不到需要的数据.Create和add方法无法创建和写入数据到数据库中. 其实根据以前问题我做了几天调试,找到了问题所在,并成功在我自己一个小项目练习中使用正常,那么现在就将我的经验分享给大家. 1,数据库的连接及配置文件的内容我就不说了, 上面已经做了解释.我这里只根据一个数据表的例子来说明我的
-
解决vue axios的封装 请求状态的错误提示问题
如下所示: /** * axios配置,输出为vue组建 * */ import axios from 'axios'; import qs from 'qs' import CookiesJS from 'js-cookie' import router from '../router' // http request 拦截器 axios.interceptors.request.use( config => { config.headers = { 'Content-Type': 'appl
随机推荐
- Shell中函数返回值超出问题
- PHP 实现多服务器共享 SESSION 数据
- Android ViewDragHelper使用介绍
- 前端JS面试中常见的算法问题总结
- asp.net JSON 序列化技术分析
- php创建多级目录完整封装类操作方法
- php对文件夹进行相关操作(遍历、计算大小)
- 解析php如何将日志写进syslog
- python编写网页爬虫脚本并实现APScheduler调度
- Python修改MP3文件的方法
- SQL中的left join right join
- SQL Server导入、导出、备份数据方法
- jQuery中:disabled选择器用法实例
- Android实现文字逐字显示出来
- C#判断日期是否到期的方法
- PHP开发大型项目的一点经验
- Android EasyPermissions官方库高效处理权限相关教程
- oracle中的greatest 函数和 least函数示例代码
- Python异常处理例题整理
- Linux下安装VMWare15.5的教程