位置: IT常识 - 正文

语音识别实战(python代码)(一)(语音识别的正确流程)

编辑:rootadmin
语音识别实战(python代码)(一) 语音识别实战(python :pyttsx、SAPI、SpeechLib实例代码)(一)

本文目录:

一、语音识别的基本原理

(1)、语音识别的起源与发展

(2)、语音识别的基本原理

(3)、语音识别过程

(4)、语音识别的近期发展

二、Python 语音识别

(1)、文本转换为语音

(2)、文本转存为语音文件wav

三、总结


一、语音识别的基本原理(1)、语音识别的起源与发展

推荐整理分享语音识别实战(python代码)(一)(语音识别的正确流程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:语音识别入门,语音识别在线,语音识别技术,语音识别技术,自动语音识别,语音识别,语音识别,语音识别实战电子书百度网盘,内容如对您有帮助,希望把文章链接给更多的朋友!

  语音识别是一门涉及声学、语言学、信号处理、模式识别、心理学,以及计算机科学等多个学科领域的复杂交叉技术学科。

  语音识别技术的发展:

(2)、语音识别的基本原理

  对普通人来说,我们通常感觉语音是由一个个单词构成,但它是如何产生和被我们感知的?

  其实,语音是一种连续动态的音频流,由一部分相当稳定的状态与诸多动态变化的状态混合而成。在这种状态序列中,人们可以定义或多或少类似的声音或音素。

  语音是随时间变化的语音动态波形。

  一个典型的语音对话系统一般包括如下几个技术模块:

对话管理器(Dialog Manager)语音识别器(Speech Recognizer)语言解析器(Language Parser)语言生成器(Language Generator)语音合成器(Speech Synthesizer)

  其中,语音识别器(又可称为语言识别模块或者语言识别系统)主要用于将用户输入的语音转换为文本。

 (3)、语音识别过程

  语音识别的一般方法是:

  首先,声音输入,提取一个波形,然后,将波形分解为语音片段并尝试识别每个语音片段中所包含的内容。

  通常情况下,要做到这一点,我们需要尝试将所有可能的单词组合与音频进行匹配,最后选择最佳匹配组合,这时就要依赖声音模型、语音模型、各种发音词典。在这个匹配过程中,由于参数的数量很大,需要对其进行优化。一般来说,会将语音分成小单位的帧,然后,对于每帧(通常为时长10ms左右),提取出39个代表语音特征的数字,这些数字即语音特征向量。

  语音识别过程示意图:

  语音识别是一个先编码后解码的过程。其中,信号处理(Signal Processing)与特征提取(Feature Extraction)是语音识别系统的开始,这是一个编码的过程。

  特征提取是指从原始的语音输入经过相应处理后得到语音特征向量。

  语言模型:当若干词组成的一个序列合乎语法时,这个序列才能算是一个句子,因此,人们在语音识别中引入了语言模型来实现这种约束。

  当前的语言模型主要有基于句法的语言模型和基于统计的语言模型两大类。

  句法语言模型(Syntactic Language Model),也称确定性语言模型(Deterministic Language Model)或形式语言模型(Formal Language Model),是人工对人类语言的内在规律总结出一套形式上可以推理和扩展的文法,对识别结果中不符合文法的结果进行排除。这种方法在某些识别任务中能够获得很好的效果。

  基于统计的语言模型对大量文本中的词的出现频率及其出现条件进行统计。通常我们将统计语言模型与声学模型结合起来完成识别任务,这可以降低因为声学模型的不合理带来的拒识率。 目前在大词汇量连续语音识别中常用的是 N-Gram 语言模型[23],对中文而言,我们称之为汉语语言模型(CLM,Chinese Language Model)。

    一个语言模型的质量的评价指标通常用语言模型复杂度(Perplexity)来表述,其定义为词序列概率的几何平均的倒数。公式:

   当复杂度越低,说明语言模型对当前词的预测确定程度越高。因此对语言模型的训练一般把训练语句的复杂度最小化作为目标。而实现这个目标,先要对训练语句中的词频进行统计,以此计算出语言模型的参数。而在词表很大而训练的数据不是充分多的时候,就会发生有些词的序列的概率很小或者没有出现过的情况(oov)。为了解决这些问题,就需要用到 discouting和 back-off等一些技术。

  一个语言模型的质量的评价指标通常用语言模型复杂度(Perplexity)来表述,其定义为词序列概率的几何平均的倒数。

(4)、语音识别的近期发展

  据:中国语音产业联盟《中国智能语音产业发展报告(2021-2022)》统计数据:

  从全球范围来看,2022年全球智能语音产业规模将达351.2亿美元,保持33.1%的高速增长;从我国来看,根据德勤统计数据,2022年我国智能语音市场将达341亿元,同比增长13.4%。

  科大讯飞、百度、阿里等龙头企业通过打造技术能力开放平台,构建开源生态,引领行业技术创新和应用开发。

  报告指出,我国智能语音企业在多项难点技术上实现新的突破。纵向上从语音识别、合成、翻译向计算机视觉、认知智能、运动智能领域延伸,横向上从单点技术突破模式发展到机器认知、多模式复杂场景应用。

  在语音合成方面,随着电商直播等行业的繁荣,语音合成技术也表现出拟人化、口语化的发展趋势。

  在语音识别方面,视听融合的多模态交互技术成为技术演进的主要方向。

  在工业领域,我国打造了包括国家智能语音创新中心在内的一批语音技术创新“国家队”, 开展工业声学、多语种、AI语音芯片等关键共性技术研究工作。

  在城市领域,智能语音技术已在安徽省一体化网上政务服务平台、聊城城市大脑、三亚市崖州湾科技城智慧产城园区、天津市AI银发智能服务平台等创新示范项目中应用。

  在医疗领域,智能外呼和智医助理可用于独居老人、留守儿童的日常关爱和兜底保障。

  在教育领域,利用智能语音和人工智能技术可实现英语听说教、学、考、评、管一站式服务,减少无效训练。

  在运营商领域,智能语音技术与健康养老、家庭教育、家庭娱乐等场景结合,带来更加智慧的家庭生活体验。融合5G与机器翻译技术的无障碍智能通信,让普通的5G手机用户,不用下载任何软件,就可以使用实时翻译和转写服务,实现跨语种的无障碍视频通话。

  在汽车领域,智能语音已成人机交互关键环节,并从车内交互衍生车外交互,从单模交互走向多模交互,从被动交互发展为主动交互,为车企提供全栈技术赋能。

  在消费者产品领域,AI学习机、翻译笔等AI+学习产品帮助学生学习减负增效;智能录音笔、智能办公本、智能鼠标等AI+办公产品深受职场人士欢迎;AI翻译机、智能麦克风、智能语音键盘、智能耳机、智能助听器等AI+生活产品,让更多人享受AI科技的便利。

  语音的发展路径:

  针对智能语音多学科交叉的学科特性,研究人员需要探索新原理、新机制、新材料、新工艺和新器件,集成创新推动核心技术进步。另一方面,语音技术需要进一步向深度理解延伸。“更先进的语音交互系统不仅要 "能听会说" ,还要深度地去理解人的信息。有了明确的发展方向,才能促进智能语音技术持续突破。

二、Python 语音识别(1)、文本转换为语音

(a)、使用 pyttsx

安装 pyttsx 包

import pyttsx3 as pyttsximport pyttsx3 as pyttsxengine = pyttsx.init()engine.say('I can because i think i can. 逆境清醒 Life is not all roses.人生并不是康庄大道。')engine.runAndWait()

  如果你安装没有出错,打开电脑的声音,就能听到语音(把我们刚才在代码里写的文本文字转换成语音播报出来了)

代码分析:

pyttsx3通过初始化来获取语音引擎,在调用init后会返回一个engine对象。

import pyttsx3

#初始化语音引擎 engine = pyttsx3.init()

设置语速、音量等参数:

engine.setProperty('rate', 100)   #设置语速 engine.setProperty('volume',0.6)  #设置音量

查看语速、音量等参数

rate = engine.getProperty('rate') print(f'语速:{rate}') volume = engine.getProperty('volume')    print (f'音量:{volume}') 

 完整实例代码:

import pyttsx3 as pyttsxengine = pyttsx.init()engine.say('I can because i think i can. 逆境清醒 Life is not all roses.人生并不是康庄大道。')rate = engine.getProperty('rate')print(f'语速:{rate}')volume = engine.getProperty('volume') print (f'音量:{volume}') engine.runAndWait()

运行结果为:

查看语音合成器 voices = engine.getProperty('voices')  for voice in voices:     print(voice) 

合成器的主要参数如下:

合成器的主要参数如下:age发音人的年龄默认为Nonegender以字符串为类型的发音人性别

male, female, or neutral.

默认为None

id关于Voice的字符串确认信息languages发音支持的语言列表默认为一个空的列表name发音人名称默认为None语音合成器

默认的有两个

两个语音合成器均可以合成英文音频,

只有第一个合成器能合成中文音频。

如果需要其他的语音合成器需要自行下载和设置。

#设置第一个语音合成器 voices = engine.getProperty('voices')  engine.setProperty('voice',voices[0].id)   

语音播报:

engine.say('I can because i think i can. 逆境清醒 Life is not all roses.人生并不是康庄大道。') engine.runAndWait() engine.stop()

import pyttsx3engine = pyttsx3.init() #初始化语音引擎engine.say('I can because i think i can. 逆境清醒 Life is not all roses.人生并不是康庄大道。')rate = engine.getProperty('rate')print(f'语速:{rate}')volume = engine.getProperty('volume') print (f'音量:{volume}') engine.setProperty('rate', 100) #设置语速engine.setProperty('volume',0.6) #设置音量voices = engine.getProperty('voices') engine.setProperty('voice',voices[0].id) #设置第一个语音合成器engine.runAndWait()engine.stop()

运行结果为:

  如果你没有出错,打开电脑的声音,就能听到语音(把我们刚才在代码里写的文本文字转换成语音播报出来了:I can because i think i can. 逆境清醒 Life is not all roses.人生并不是康庄大道。)

  我们设置使用第一个语音合成器,同时,屏幕会打印出当前语速是200,音量是:1.0

语音识别实战(python代码)(一)(语音识别的正确流程)

(b)、使用 SAPI

  也可以使用 SAPI 来做文本到语音的转换。

   SAPI是微软Speech API , 是微软公司推出的语音接口。

from win32com.client import Dispatch# 获取讲话对象speaker = Dispatch('SAPI.SpVoice')# 讲话内容speaker.Speak('Just Be You')speaker.Speak('No one can do it just like you')speaker.Speak('Something magic in the way you move')speaker.Speak('You are original, you know it is true')speaker.Speak('do not let anybody take your tune')speaker.Speak('You are not got a single thing to prove')speaker.Speak('You are original, so just be you')speaker.Speak('Just be you')speaker.Speak('You are one of a kind')speaker.Speak('The kind of once in a lifetime')speaker.Speak('Not just another face in the crowd')speaker.Speak('You light up a room')speaker.Speak('With the light that is inside you')speaker.Speak('do not be afraid to let it out')speaker.Speak('So hold your head up')speaker.Speak('do not let anybody get you down')speaker.Speak('No one can do it just like you')speaker.Speak('Something magic in the way you move')speaker.Speak('You are original, you know it is true')speaker.Speak('do not let anybody take your tune')speaker.Speak('You are not got a single thing to prove')speaker.Speak('You are original, so just be you')speaker.Speak('Just be you')speaker.Speak('Ooh, just be you')speaker.Speak('Ooh, just be you')speaker.Speak('You gotta believe')speaker.Speak('You are here for a reason')speaker.Speak('This world needs somebody like you')speaker.Speak('Cause anybody can be a copy')speaker.Speak('And there will always be people talking')speaker.Speak('So face your fears and chase your dreams')speaker.Speak('And dance like no one is watching')speaker.Speak('No one can do it just like you')speaker.Speak('Something magic in the way you move')speaker.Speak('You are original, you know it is true')speaker.Speak('do not let anybody take your tune')speaker.Speak('You are not got a single thing to prove')speaker.Speak('You are original, so just be you')speaker.Speak('Just be you')speaker.Speak('Ooh, just be you')speaker.Speak('Ooh, just be you')speaker.Speak('You are one of a kind')speaker.Speak('The kind of once in a lifetime')speaker.Speak('Not just another face in the crowd')speaker.Speak('No one can do it just like you')speaker.Speak('Something magic in the way you move')speaker.Speak('You are original, you know it is true')speaker.Speak('do not let anybody take your tune')speaker.Speak('You are not got a single thing to prove')speaker.Speak('You are original, so just be you')speaker.Speak('Just be you')speaker.Speak('Ooh, just be you')speaker.Speak('Ooh, just be you')speaker.Speak('没有人能像你一样')speaker.Speak('那样的充满魔力')speaker.Speak('你知道的,你是最初的你')speaker.Speak('不要让任何人改变你')speaker.Speak('你不需要去证明什么')speaker.Speak('你是最初的你,做你自己')speaker.Speak('做你自己吧')speaker.Speak('你是独一无二的')speaker.Speak('一生仅有一个的那种')speaker.Speak('你不像人群中的另一种面孔')speaker.Speak('你用你内心的温暖')speaker.Speak('照亮了整个房间')speaker.Speak('不要害怕说出来')speaker.Speak('抬起你的头吧')speaker.Speak('不要因为任何人而让你失望')speaker.Speak('没有人能像你一样')speaker.Speak('那样的充满魔力')speaker.Speak('你知道的,你还是最初的你')speaker.Speak('不要让任何人改变你')speaker.Speak('你不用去证明什么')speaker.Speak('因为你就是你')speaker.Speak('做你自己')speaker.Speak('Ooh, just be you')speaker.Speak('做你自己吧')speaker.Speak('Ooh, just be you')speaker.Speak('做你自己')speaker.Speak('你必须要相信')speaker.Speak('你来这一趟是有原因的')speaker.Speak('这个世界需要像你一样的人存在')speaker.Speak('因为任何人都可是一个复制品')speaker.Speak('人们总是在背后指指点点')speaker.Speak('战胜内心的恐惧,去追逐你的梦想')speaker.Speak('假装没有人在看你,自在地舞动吧')speaker.Speak('没有人能像你一样')speaker.Speak('那样的充满魔力')speaker.Speak('你知道的,你还是最初的你')speaker.Speak('不要因为任何人而改变你自己')speaker.Speak('你也不用去证明什么')speaker.Speak('你就是最初的你')speaker.Speak('做你自己')speaker.Speak('做你自己吧')speaker.Speak('做你自己')speaker.Speak('你是独一无二的')speaker.Speak('一生仅有一个的那种')speaker.Speak('不像人群中的另一种面孔')speaker.Speak('没有人像你')speaker.Speak('如此有魔力')speaker.Speak('你也知道的,你还是原本的你')speaker.Speak('不要让任何人改变你')speaker.Speak('你不需要去证明什么')speaker.Speak('你还是原来的你')speaker.Speak('做你自己')speaker.Speak('做你自己吧')speaker.Speak('Ooh, just be you')speaker.Speak('做你自己吧')# 释放对象del speaker

  如果你没有出错,打开电脑的声音,就能听到语音(把我们刚才在代码里写的文本文字转换成语音播报出来了)

(2)、文本转存为语音文件wav

(a)、用SpeechLib库

方法:1.从文本文件中获取输入语音的文本内容,将其转换为语音,保存成.wav格式

使用 SpeechLib,需要先安装, 命令如下:

pip install comtypesfrom comtypes.client import CreateObjectengine = CreateObject('SAPI.SpVoice')stream = CreateObject('SAPI.SpFileStream')from comtypes.gen import SpeechLibinfile = '就算世界无童话.txt'outfile = '就算世界无童话.wav'stream.open(outfile, SpeechLib.SSFMCreateForWrite)engine.AudioOutputStream = streamf = open(infile, 'r', encoding='utf-8')theText = f.read()f.close()stream.close()

  如果你没有出错,电脑里同一个目录里出现了转换好的语音文件“ 就算世界无童话.wav ”

三、总结

  本文主要从概念上图文论述了语音识别的起源与发展、语音识别的基本原理、语音识别过程、语音识别的近期发展。

  代码上分析了Python 语音识别所用到的技术,从 (1)、文本转换为语音。(2)、文本转存为语音文件wav。两个方面实例操作了语音识别的技术实现方式,并提供了完整源代码供参考。

  python语音识别还有其他的方法,例如从话筒等输入语音来识别,这些将会在后面更新博文时再详细分析。

          推荐阅读:

计算机视觉__基本图像操作(显示、读取、保存)直方图(颜色直方图、灰度直方图)直方图均衡化(调节图像亮度、对比度)

 语音识别实战(python代码)(一)

 人工智能基础篇

 计算机视觉基础__图像特征

 matplotlib 自带绘图样式效果展示速查(28种,全)

Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

​立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦

 Python 3D可视化(一)

 让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud)

 python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

python爱心源代码集锦(18款)

 Python中Print()函数的用法___实例详解(全,例多)

 Python函数方法实例详解全集(更新中...)

 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念

​用代码过中秋,python海龟月饼你要不要尝一口?

 python练习题目录

​草莓熊python turtle绘图(风车版)附源代码

 ​草莓熊python turtle绘图代码(玫瑰花版)附源代码

 ​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码

 巴斯光年python turtle绘图__附源代码

皮卡丘python turtle海龟绘图(电力球版)附源代码

​vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)

​2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特

 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4套)

SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

​【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码)HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码)

 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

 Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)

 色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名)

2023年4月多家权威机构____编程语言排行榜__薪酬状况

 手机屏幕坏了____怎么把里面的资料导出(18种方法)

【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

 查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决

 tomcat11、tomcat10 安装配置(Windows环境)(详细图文)

 Tomcat端口配置(详细)

 Tomcat 启动闪退问题解决集(八大类详细)

本文链接地址:https://www.jiuchutong.com/zhishi/299856.html 转载请保留说明!

上一篇:数据分析之Pandas(2)(数据分析利器:pandas库的应用课后答案)

下一篇:前端不使用 i18n,如何优雅的实现多语言?(前端不使用明文密码方案)

  • 税负率的计算公式举例说明
  • 个体户每个月要申报个税吗
  • 税务师职业考试
  • 印花税会计分录怎么做
  • 过路费定额发票还能入账吗
  • 结转成本时是否含税
  • 股份支付为什么计入股本溢价
  • 多缴税款抵税有期限吗
  • 发票领回来了怎么读入发票
  • 本期实际缴费金额指的是什么
  • 居民企业股权转让所得
  • 未支付的货款属于什么会计科目
  • 进口增值税的计税价格为
  • 关税如何征收
  • 建筑施工企业质量体系环境包括
  • 从外面买回来的菜怎么消毒
  • 工程费用进项税率
  • 5.0车船税和交强险一年多少钱
  • 价税合计是什么会计科目
  • 增值税留抵税额抵减欠税
  • 作废发票 红字发票
  • 增值税专用发票的税率是多少啊
  • 小规模纳税人增值税税率
  • 税费五个点怎么算
  • 购进原材料没有发票怎么办
  • 房地产企业扣除项目
  • 监理费该谁出
  • 库存股是实收资本吗
  • 什么人适用131419手机号码
  • 福利费应计入什么费用
  • 桌面或文件夹内无图标
  • 人工装卸怎么办营业执照
  • 工业增加值计算公式是什么
  • 劳务收入的会计分录
  • 税务检查所得税调整
  • 抵扣后增值税税率
  • php字符串变量
  • 固定资产和低值易耗品的登记和管理咋弄?
  • 股份支付费用是股权激励成本吗?
  • PHP:curl_multi_setopt()的用法_cURL函数
  • 共管账户和监管账户是一样的吗知乎
  • 电脑开不了机一直重启
  • PHP:pg_get_notify()的用法_PostgreSQL函数
  • 对视同销售行为应如何进行税务处理
  • 资产增加为什么记借方
  • 纳税人数字签名怎么填
  • ensp综合实验配置
  • 小规模纳税人减免增值税会计处理
  • 给员工报销
  • php怎么上传图片并保存到数据库
  • python如何导入excel
  • 企业收到发票冲销怎么办
  • phpcms目录结构
  • 物业用房需要交维修基金吗
  • 股东退股按什么退钱
  • 押金的增值税处理流程
  • 失控发票要补交所得税吗
  • 工商年审中实缴还是虚缴
  • 买的加油卡怎么充值
  • 公司注册登记需要多少钱
  • 建筑公司项目如何上手
  • 增值税退税是否算主营业务收入
  • 其他应付款长期挂账几年必须转收入
  • 营销策划服务费属于什么服务
  • 企业职工福利费可用于职工的医疗卫生费用
  • 鉴证咨询公司
  • win10一年更新一次
  • u盘安装vista
  • windows2003企业版sp2密钥
  • ubuntu的命令行快捷键
  • linux系统磁盘管理的主要内容
  • win7电脑操作日志怎么查看
  • Win10系统下怎么设置按Win+E进入计算机的图文教程
  • window10桌面日历
  • 用css制作网页的步骤
  • linux版本控制软件
  • javascript学习指南
  • 广东佛山超市排名
  • 南京税务证明怎么打印
  • 代账好做吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设