本文主要讲解如何使用python来实现将文本转为语音,以一个小例子为例,写了一下用pyTTS来朗读本地方件或在线朗读RFC文档,当然也可以修改一下,做成在线朗读新闻之类的,另本来想实现一个读中文小说的小程序,目前没有发现对中文支持得非常好的,且是免费的语音处理引擎,只能使用TTS实现一个英文的了,就当是用来练习听力了。

1、准备:

a. 下载pyTTS, http://sourceforge.net/projects/uncassist/files/pyTTS/pyTTS%203.0/

b.  下载SpeechSDK51:下载

c.  下载SpeechSDK51 patch,支持中文和日文,本例没有使用,下载。

2、实现:

代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-#程序说明:此程序实现了通过TTS将文本内容读出来,提供了两种方式,一种是读本地文本文件,
#另一种方式为在线读RFC文档,要属入rfc编号,会将其内容逐行读出来打印到终端,其中音量
#大小,语速,朗读者可能过配置文件来设置,测试了下基本还算清楚,发现免费的TTS引擎对中文
#的支持均不是很好,所以本程序暂时没有处理对中文文件的阅读import pyTTS
import ConfigParserdef read_local_file(tts): '''Function:朗读本地文件Input:TTS对象Output: NONEAuthor: socratesBlog:http://blog.csdn.net/dyx1024Date:2012-02-19'''  #输入要朗读的文本文件名file_name = raw_input("please input a text file name (for example: rfc4960.txt)").strip()try:fobj = open(file_name,  'r')except IOError, err:print('file open error: {0}'.format(err))return else:#逐行输出并朗读的文本内容for eachLine in fobj:  print(eachLine)tts.Speak(eachLine) fobj.close()def read_online_rfc(tts):  '''Function:在线朗读RFC文档Input:TTS对象Output: NONEAuthor: socratesBlog:http://blog.csdn.net/dyx1024Date:2012-02-19'''      import urllib#输入要朗读的RFC编号rfc_id = raw_input("please input a rfc number (for example: 4960):")#打开RCF文档try:pager = urllib.urlopen("http://tools.ietf.org/rfc/rfc%s.txt" % rfc_id)except Exception, err:print("open url failed, ret = %s" % err.args[0])return#逐行读取while True:if len(pager.readline()) == 0:breakelse:strtmp = pager.readline() print strtmptts.Speak(strtmp)     def Init_tts():'''Function:初始化TTS引擎Input:NONEOutput: NONEAuthor: socratesBlog:http://blog.csdn.net/dyx1024Date:2012-02-19''' tts_config = ConfigParser.ConfigParser()#读取TTS相关配置文件try:tts_config.readfp(open('tts_config.ini'))except ConfigParser.Error:print 'read tts_config.ini failed.'#创建TTS对象tts = pyTTS.Create() #设置语速   tts.Rate = int(tts_config.get("ttsinfo", "TTS_READ_RATE"))#设置音量tts.Volume = int(tts_config.get("ttsinfo", "TTS_READ_VOLUME"))#设置朗读者tts.SetVoiceByName(tts_config.get("ttsinfo", "TTS_READ_READER"))       return ttsdef show_menu():'''Function:系统菜单Input:NONEOutput: NONEAuthor: socratesBlog:http://blog.csdn.net/dyx1024Date:2012-02-19''' prompt = '''l. read local file.2. read rfc online.3. exitplease input your choice (1 or 2):'''command_name = {'1':read_local_file, '2':read_online_rfc}while True:while True:try:choice = raw_input(prompt).strip()[0]except (EOFError, KeyboardInterrupt, IndexError):choice = '3'if choice not in '123':print 'error input, try again'else:breakif choice == '3':breakcommand_name[choice](Init_tts())if __name__ == '__main__':show_menu()

配置文件tts_config.ini:

[ttsinfo]
TTS_READ_RATE=-2 ;语速,默认为0,大于0表示快,小于0表示慢
TTS_READ_VOLUME=100 ;音量,0-100之间
TTS_READ_READER=MSMike ;朗读者,取值MSSam、MSMary、MSMike

测试一:

    l. read local file.2. read rfc online.3. exitplease input your choice (1 or 2):1
please input a text file name (for example: rfc4960.txt)english.txt
China says it condemns all acts of violence against innocent civiliansBEIJING - China's negative vote on a draft resolution on Syria at the United Nations General Assembly on Thursday was consistent with China's independent foreign policy of peace and in the best interests of the Syrian situation, officials and experts said. China opposes armed intervention or forcing a so-called regime change in Syria, China's deputy permanent representative to the UN Wang Min said in explanatory remarks."We condemn all acts of violence against innocent civilians and urge the government and all political factions of Syria to immediately and fully end all acts of violence, and quickly restore stability and the normal social order," Wang said.

测试二:<>标记对中的内容仅打印,不朗读,各协议文档编号可从 http://tools.ietf.org/rfc/中查询。

    l. read local file.2. read rfc online.3. exitplease input your choice (1 or 2):2
please input a rfc number (for example: 4960):330
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><head><meta http-equiv="Content-Style-Type" content="text/css" /><!-- JavaScript --><script language="javascript1.1" src="/js/updated.js" type="text/javascript"></script><link rel="icon" href="/ietf.ico" /><title>IETF Tools</title><style type="text/css" >/* HTML element styles */background-color: white;    padding: 0;}font-family: "Times New Roman", times, serif;margin: 0;h1        { font-size: 150%; }h4      { margin: 0.45em 0 0 0; }.menu form { margin: 0; }input.frugal,textarea.frugal {border-left: groove 2px #ccc;

此博客上传不了音频文件,有兴趣的朋友可以自己运行一下收听。

Python:语音处理,实现在线朗读RFC文档或本地文本文件相关推荐

  1. python语音在线编辑-Python:语音处理,实现在线朗读RFC文档或本地文本文件

    本文主要讲解如何使用python来实现将文本转为语音,以一个小例子为例,写了一下用pyTTS来朗读本地方件或在线朗读RFC文档,当然也可以修改一下,做成在线朗读新闻之类的,另本来想实现一个读中文小说的 ...

  2. python中文朗读_Python:语音处理,实现在线朗读RFC文档或本地文本文件

    本文主要讲解如何使用python来实现将文本转为语音,以一个小例子为例,写了一下用pyTTS来朗读本地方件或在线朗读RFC文档,当然也可以修改一下,做成在线朗读新闻之类的,另本来想实现一个读中文小说的 ...

  3. RFC文档阅读器(RFC Reader)软件介绍

    因为工作原因需要移植SIP协议栈,所以阅读SIP协议的标准文档RFC3261就成为必要的工作.然而RFC的文档都是以txt纯文本格式发布(虽然也有pdf格式的,但没有目录书签功能),如果使用记事本来阅 ...

  4. Python 开发工具集:关于文档、测试、调试、程序的优化和分析

    Python 开发工具集:关于文档.测试.调试.程序的优化和分析 原文    http://segmentfault.com/a/1190000000410521 Python已经演化出了一个广泛的生 ...

  5. python中的pep_Python的PEP文档是什么?

    Python的PEP文档是一组不断发展的标准文档,PEP是Python Enhancement Proposal的首字母缩写.就像TCPIP协议使用RFC来组织起不断发展的通信标准一样,PEP也是类似 ...

  6. Word处理控件Aspose.Words功能演示:在 Python 中比较两个 Word 文档

    在各种情况下执行 Word 文档的比较以确定差异.各种在线工具允许您比较 Word 文档,但是,您可能需要在应用程序中实现比较功能.为实现它,本文展示了如何在 Python 中比较两个 Word 文档 ...

  7. RFC文档(中文翻译版本)

    RFC文档官方在线阅读地址:https://tools.ietf.org/rfc/index 以下是部分中文翻译的文档连接 RFC文档目录 RFC1 主机软件 RFC2 主机软件 RFC3 文档规范 ...

  8. python asyncio文件操作_Python asyncio文档阅读摘要

    文档地址:https://docs.python.org/3/library/asyncio.html 文档第一句话说得很明白,asyncio是单线程并发,这种event loop架构是很多新型异步并 ...

  9. python word排版_使用Python通过win32 COM实现Word文档的写入与保存方法

    通过win32 COM接口实现软件的操作本质上来看跟直接操作软件一致,这跟我之前经常用的通过各种扩展的组件或者库实现各种文件的处理有较大的差异.如果有过Windows下使用Word的经历,那么使用wi ...

最新文章

  1. 数据库持久层封装设计
  2. php数据表格的重载,layui数据表格实现重载数据表格功能(搜索功能)
  3. python远程执行linux命令256_python远程操作Linux——使用paramiko库
  4. linux默认权限二进制与,Linux系统文件的默认权限和特殊权限
  5. c语言计算24游戏,C语言解24点游戏程序
  6. linux阻止程序,Linux:阻止某些应用程序/主机名的IPv6
  7. Spring基础系列-AOP源码分析
  8. python 笔记 之 装饰器
  9. 3. LAMP 安装与配置
  10. 38. 后台模块开发(3)
  11. 关于计算机编程语言 国外网友妙语录
  12. 中英文1:2等宽字体
  13. 基于PT2001 的4缸发动机 DFI 控制讲解3 - DCDC部分
  14. 60个英文阅读网站强力推荐
  15. 点击苹果手机计算机页面慢,苹果平板电脑浏览器打开慢怎么办
  16. 计算机预测自己未来的相貌,AI算法预测未来相貌,准确率高达90%以上
  17. 欢迎来到天蓝零度的官方微博发布平台
  18. 迪士尼正在寻找一个区块链实习生
  19. 斐波那契回调线怎么画_交易者必备——斐波那契回调线的绝妙用法
  20. 浪潮信息m5服务器,浪潮英信服务器NF8480M5

热门文章

  1. 移动商务进入战国时代 08年市场规模达306.5亿
  2. 页面自动获取导入excel内容
  3. [Python]列出100以内被7整除不被5整除的数
  4. Android 快速为背景添加方格线
  5. 【五一专属活动】向所有热爱分享的“技术劳动者”致敬
  6. RecyclerView clipToPadding
  7. 分享一则电子邮件营销案例
  8. 二柱子卖的西瓜上315啦!一个故事读懂315危机公关
  9. 第一个安卓应用小程序--浅浅仿照微信发现界面
  10. 公司监事会的职责具体是什么