因工作需要,做了一个QQ机器人语音播报程序。主要思路 是通过 酷Q 获取QQ消息取出有效信息。

根据信息在百度AI上合成语音,然后本地播放。

在播放语音的时候用了好几个模块  pygame 、pymedia  、系统os 等,试听效果都不怎么理想,最后发现MP3play 蛮好(开始用的python2.7)

  移植到新环境的时候mp3play 报错了。无法播放,根据提示查看源码,修改了两处地方,可正常运行。

  mp3play 根目录下  有两个文件  __init__.py 和 windows.py  根目录可以通过 pip install  mp3play  查看(没安装的会安装,安装了会显示安装路径)

  修改windows.py 两处代码

class _mci:
def __init__(self):
self.w32mci = windll.winmm.mciSendStringA
self.w32mcierror = windll.winmm.mciGetErrorStringA def send(self, command):
buffer = c_buffer(255)
command=command.encode(encoding="utf-8") #添加的将str 转bytes errorcode = self.w32mci(command, buffer, 254, 0) # 默认的str(command) 不要str
if errorcode: return errorcode, self.get_error(errorcode)
else:
return errorcode, buffer.value def get_error(self, error):
error = int(error)
buffer = c_buffer(255)
self.w32mcierror(error, buffer, 254)
return buffer.value def directsend(self, txt):
(err, buf) = self.send(txt)
if err != 0:
print ('Error %s for "%s": %s' % (str(err), txt, buf)) # print 添加一个()
return (err, buf)

改了两处测试可以使用。然后看了下MP3play  发现他主要是调用了系统 windll.winmm.mciSendStringA  函数

 from ctypes import windll, c_buffer

核心调用 windll.winmm.mciSendStringA(b"play aa.mp3", 0, 0, 0)

python 3.7 使用MP3play 模块的更多相关文章

  1. Python全栈开发【模块】

    Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...

  2. Python 学习笔记(6)--常用模块(2)

    一.下载安装 下载安装有两种方式: yum\pip\apt-get 或者源码 下载源码 解压源码 进入目录 编译源码 python setup.py build 安装源码 python setup.p ...

  3. python学习笔记之常用模块(第五天)

    参考老师的博客: 金角:http://www.cnblogs.com/alex3714/articles/5161349.html 银角:http://www.cnblogs.com/wupeiqi/ ...

  4. Python 之路 Day5 - 常用模块学习

    本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...

  5. Python导入自定义包或模块

    一般我们会将自己写的 Python 模块与 Python 自带的模块分开存放以达到便于维护的目的. Python 运行环境在查找模块时是对 sys.path 列表进行遍历,如果我们想在运行环境中添加自 ...

  6. python几个重要的模块备忘

    一:模块使用方法 二:时间模块time 三:系统接口模块os和sys 四:数据保存的几个模块json,pickle,xml,configparse 五:数据复制移动模块shutil 六:日志模块log ...

  7. 【python】IP地址处理模块IPy

    来源:https://pypi.python.org/pypi/IPy IPy模块 该模块可以方便的处理IPv4和IPv6地址. 以下是从来源中拷贝的一些例子: >>> from I ...

  8. Python标准库之Sys模块使用详解

    sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分. 处理命令行参数 在解释器启动后, argv 列表包含了传递给脚本的所有参数, 列表的第一个元素为脚本自身的名称. 使用sy ...

  9. Python学习(14)模块一

    目录 Python 模块 import语句 from ... import 语句 from ... import * 语句 定位模块 PYTHONPATH变量 命名空间和变量 dir()函数. glo ...

随机推荐

  1. CF1025B Weakened Common Divisor 数学

    Weakened Common Divisor time limit per test 1.5 seconds memory limit per test 256 megabytes input st ...

  2. CF922A Cloning Toys

    A. Cloning Toys time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  3. Convolution model by吴恩达

    # GRADED FUNCTION: model def model(X_train, Y_train, X_test, Y_test, learning_rate = 0.009, num_epoc ...

  4. SqlServer数据库技巧

    1.数值转换失败提供默认值 , )) end

  5. 林大妈的JavaScript进阶知识(三):HTML5 History API

    HTML5中新增了History API,它用于管理浏览器路由跳转的一个url栈.History是window对象的一部分,它也是一个对象,因此称它是BOM(类似DOM,Browser Object ...

  6. LeetCode - 字符串数字相乘与相加

    43. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2& ...

  7. (六十五)c#Winform自定义控件-思维导图/组织架构图(工业)

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...

  8. 搜索入门练习题9 LETTERS 题解

    题目出处:<信息学奥赛一本通>第五章上机练习1 或者 POJ1154 题目描述 给出一个 \(R\times S\) 的大写字母矩阵,一开始你所处的位置在左上角,你可以向上下左右四个方向移 ...

  9. python+selenium自动化测试——浏览器驱动

    selenium控制浏览器需要下载对应版本的驱动,并把下载好的驱动解压然后拷贝到python的安装目录. 1.chrome 驱动对应版本及下载地址;https://npm.taobao.org/mir ...

  10. MOOC web前端开发笔记(一)

    网站和网页 网站 互联网上用于展示特定内容的相关网页的集合. 网页 网站中的一页,一个网站中的网页通过"超链接"的方式被组织在一起. 主页 进入网站看到的第一个网页,主页的文件名通 ...