python语音识别转文字,python3将语音转换成文字

  python语音识别转文字,python3将语音转换成文字

  准备

  我使用Python版本2.7.10进行测试。如果你的版本是Python3.5,这里不适合。

  使用语音API

  原则

  我们的想法是用微软的语音接口,所以必须调用相关接口。所以我们需要安装pywin32来帮助我们完成这个底层交互。

  示例代码

  导入win32com.client

  speaker=win32 com . client . dispatch( SAPI。sp voice’)

  扬声器。说话(‘你好,它工作了!’)

  小总结

  没错,就是调用接口实现语音功能这么简单,但是我们不得不说一下这种方式的缺点。

  对中文的支持不够好,就这一点,国内估计没几个人用。

  还有就是无法很好的控制语速。

  Pyttsx模式

  原则

  Pyttsx是一个非常好的关于文本到语音的Python库。我们还可以使用pyttsx在线读取rfc文件或本地文件,最重要的是,它很好地支持中文。

  示例代码

  #编码:utf-8

  导入系统

  重新加载(系统)

  sys.setdefaultencoding(utf8 )

  # __author__=fzdwk

  # __date__=2016年8月6日

  # __Desc__=文本到语音输出

  导入pyttsx

  engine=pyttsx.init()

  engine.say(“你好,世界”)

  Engine.say(你好,xhdmt )

  engine.runAndWait()

  #读一遍

  engine.endLoop()

  小总结

  有了pyttsx,我们可以用它强大的API实现我们的基本业务需求。很酷吧。

  pyttsx的深入研究

  做完上面的小实验,你一定会觉得为什么这么无聊。

  别急,让我们一起走进pyttsx的世界,深入研究它的工作原理。

  语音引擎工厂

  与设计模式中的“工厂模式”类似,pyttsx通过初始化来获取语音引擎。当我们第一次调用init操作时,我们将返回pyttsx的一个引擎对象。当我们再次调用它时,如果有引擎对象的实例,我们将使用现有的实例,否则我们将创建另一个实例。

  pyttsx.init([driverName : string,debug : bool]) pyttsx。发动机

  从方法语句来看,第一个参数指定了语音驱动的名称,这个名称与底层的操作系统密切相关。如下所示:

  1.drivename:由pyttsx.driver模块根据操作系统的类型调用,默认使用当前操作系统可用的最佳驱动。

  Windows上的sapi5 - SAPI5

  Mac OS X上的nsss - NSSpeechSynthesizer

  espeak -其他平台上的espeak

  2.debug:第二个参数指定是否在调试状态下输出。建议在开发阶段将其设置为True。

  引擎接口

  想用好一个库,不了解它的API是不行的。我们来看看pyttsx。发动机的发动机API。发动机

  方法签名

  参数列表

  返回值

  简单的解释

  连接(主题:字符串,cb:可调用)

  主题:要描述的事件的名称;Cb:回调函数

  字典

  添加给定主题的回叫通知。

  断开连接(令牌:dict)

  Token:回调损失的返回标记。

  空的

  端部连接

  结束循环()

  没有人

  无

  简单来说,就是结束事件循环。

  getProperty(名称:字符串)

  这个名字有这些枚举值:比率、暴力率、暴力次数、暴力量。

  对象

  获取当前引擎实例的属性值。

  setProperty(名称:字符串)

  这个名字有这些枚举值:比率、暴力率、暴力次数、暴力量。

  对象

  设置当前引擎实例的属性值。

  说(文本:unicode,名称:字符串)

  Text:要朗读的文本数据;名称:关联扬声器,一般不使用。

  无

  要朗读的文本数据是预设的,也是“万事俱备,只欠东风”中的“万事俱备”

  runAndWait()

  没有人

  无

  这个方法就是‘东风’。当事件队列中的所有事件都为空时返回。

  开始循环([useDriverLoop : bool])

  UseDriverLoop:是否启用驱动循环?

  无

  打开事件队列。

  元数据音调

  在pyttsx.voice.Voice中,对合成器的发音进行处理。

  年龄

  说话人的年龄,默认为无。

  性别

  字符串类型的说话者的性别:男性、女性或中性。默认值为无。

  编号

  关于语音的字符串确认信息。通过pyttsx . engine . engine . set property value()设置活动发音签名。该属性始终是定义的。

  语言

  发音支持的语言列表,如果没有,则为空列表。

  名字

  发音人名称,默认为没有。

  更多测试

  朗读文本

  导入pyttsx

  engine=pyttsx.init()

  引擎。说(’莎莉在海边卖贝壳。)

  引擎。说(’那只敏捷的棕色狐狸跳过了那只懒狗。)

  engine.runAndWait()

  事件监听

  导入pyttsx

  定义onStart(名称):

  打印"起始",姓名

  定义单词(名称、位置、长度):

  打印"单词",名称,位置,长度

  def onEnd(姓名,已完成):

  打印"完成",名称,已完成

  engine=pyttsx.init()

  引擎。说(’那只敏捷的棕色狐狸跳过了那只懒狗。)

  engine.runAndWait()

  打断发音

  导入pyttsx

  定义单词(名称、位置、长度):

  打印"单词",名称,位置,长度

  如果位置10:

  发动机停止()

  engine=pyttsx.init()

  引擎。说(’那只敏捷的棕色狐狸跳过了那只懒狗。)

  engine.runAndWait()

  更换发音人声音

  engine=pyttsx.init()

  声音=引擎。getproperty(“声音”)

  对于声音中的声音:

  engine.setProperty(voice ,voice.id)

  引擎。说(’那只敏捷的棕色狐狸跳过了那只懒狗。)

  engine.runAndWait()

  语速控制

  engine=pyttsx.init()

  rate=engine.getProperty(rate )

  engine.setProperty(rate ,rate 50)

  引擎。说(’那只敏捷的棕色狐狸跳过了那只懒狗。)

  engine.runAndWait()

  音量控制

  engine=pyttsx.init()

  体积=发动机。getproperty(卷)

  engine.setProperty(volume ,volume-0.25)

  引擎。说(’那只敏捷的棕色狐狸跳过了那只懒狗。)

  engine.runAndWait()

  执行一个事件驱动循环

  engine=pyttsx.init()

  定义onStart(名称):

  打印"起始",姓名

  定义单词(名称、位置、长度):

  打印"单词",名称,位置,长度

  def onEnd(姓名,已完成):

  打印"完成",名称,已完成

  if name==fox :

  engine.say(多懒的狗啊!,狗)

  elif name==dog :

  engine.endLoop()

  engine=pyttsx.init()

  引擎。说(’那只敏捷的棕色狐狸跳过了那只懒狗。,狐狸)

  engine.startLoop()

  使用一个外部的驱动循环

  engine=pyttsx.init()

  引擎。说(’那只敏捷的棕色狐狸跳过了那只懒狗。,狐狸)

  engine.startLoop(False)

  必须在外部循环()内部调用# engine.iterate()

  外部循环()

  engine.endLoop()

  总结

  以上就是计算机编程语言如何实现文本转语音的全部内容,看完了上面的讲述,是不是感觉计算机编程语言实现文本转语音还是蛮简单的?那么,大家快来尝试尝试吧。希望本文对大家学习计算机编程语言有所帮助。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: