python-自动化篇-运维-语音识别

文章目录

  • 理论
    • 文本转换为语音
      • 使用 pyttsx
      • 使用 SAPI
      • 使用 SpeechLib
    • 语音转换为文本
  • 代码和效果
    • 01使用pyttsx实现文本_语音
    • 02使用SAPI实现文本_语音
    • 03使用SpeechLib实现文本_语音
    • 04使用PocketSphinx实现语音转换文本

理论

语音识别技术,也被称为自动语音识别,目标是以电脑自动将人类的语音内容转换为相 应的文字和文字转换为语音。

文本转换为语音

使用 pyttsx

使用名为 pyttsx 的 python 包,你可以将文本转换为语音。直接使用 pip 就可以进行安装, 命令如下:

pip install pyttsx3

【示例】使用 pyttsx 实现文本转换语音

import pyttsx3 as pyttsx 
engine=pyttsx.init() 
engine.say('你好 pyttsx') 
engine.runAndWait() 

使用 SAPI

在 python 中,你也可以使用 SAPI 来做文本到语音的转换。

【示例】使用 SAPI 实现文本转换语音

from win32com.client import Dispatch 
msg="你好 SAPI" 
speaker = Dispatch('SAPI.SpVoice') 
speaker.Speak(msg) 
del speaker 

使用 SpeechLib

使用 SpeechLib,可以从文本文件中获取输入,再将其转换为语音。先使用 pip 安装, 命令如下:

pip install comtypes 

【示例】使用 SpeechLib 实现文本转换语音

from comtypes.client import CreateObject 
engine=CreateObject("SAPI.SpVoice") 
stream=CreateObject('SAPI.SpFileStream') 
from comtypes.gen import SpeechLib 
infile='demo.txt' 
outfile='demo_audio.wav'
stream.Open(outfile,SpeechLib.SSFMCreateForWrite) engine.AudioOutputStream=stream 
f=open(infile,'r',encoding='utf-8') 
theText=f.read() 
f.close() 
engine.speak(theText) 
stream.close() 

语音转换为文本

使用 PocketSphinx PocketSphinx 是一个用于语音转换文本的开源 API。它是一个轻量级的语音识别引擎, 尽管在桌面端也能很好地工作,它还专门为手机和移动设备做过调优。
首先使用 pip 命令安装所需模块,命令如下:

pip install PocketSphinx 
pip install SpeechRecognition 

【示例】使用 PocketSphinx 实现语音转换文本

import speech_recognition as sr 
audio_file='demo_audio.wav' 
r=sr.Recognizer() 
with sr.AudioFile(audio_file) as source: 
audio =r.record(source) try: # print('文本内容:',r.recognize_sphinx(audio,language="zh_CN")) print('文本内容:',r.recognize_sphinx(audio)) 
except Exception as e: print(e) 

注意:
□ 安装完 speech_recognition 之后是不支持中文的,需要在 Sphinx 语音识别工具包里 面 下 载 对 应 的 普 通 话 升 学 和 语 言 模 型 。 下 载 地 址 https://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Mo dels/
□ 将 下 载 好 的 普 通 话 升 学 和 语 言 模 型 放 到 安 装 speech_recognition 模 块 的 pocketsphinx-data 目录下。

代码和效果

01使用pyttsx实现文本_语音

import pyttsx3 as pyttsx
engine=pyttsx.init()
engine.say('好好学习')
engine.runAndWait()

复制到vscode或其他,运行时需要 pip install pyttsx3
在这里插入图片描述
在这里插入图片描述

02使用SAPI实现文本_语音

from win32com.client import Dispatch
speaker=Dispatch('SAPI.SpVoice')
speaker.Speak('大家好')
del speaker

在这里插入图片描述

03使用SpeechLib实现文本_语音

from comtypes.client import CreateObject
from comtypes.gen import SpeechLib
engine=CreateObject('SAPI.SpVoice')
stream=CreateObject('SAPI.SpFileStream')
infile='demo.txt'
outfile='demo_audio.wav'
stream.open(outfile,SpeechLib.SSFMCreateForWrite)
engine.AudioOutputStream=stream
#读取文本内容
f=open(infile,'r',encoding='utf-8')
theText=f.read()
f.close()
engine.speak(theText)
stream.close()

需要将文本放到电脑根目录下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

04使用PocketSphinx实现语音转换文本

import speech_recognition as sr
audio_file='demo_audio.wav'
r=sr.Recognizer()
#打开语音文件
with sr.AudioFile(audio_file) as source:audio=r.record(source)#将语音转换为文本
# print('文本内容:',r.recognize_sphinx(audio))
print('文本内容:',r.recognize_sphinx(audio,language='zh-CN'))

一、安装环境库
在这里插入图片描述
ModuleNotFoundError: No module named ‘speech_recognition’
是:pip install speechrecognition
在这里插入图片描述
再安装:pip install PocketSphinx
在这里插入图片描述

二、文件放根目录
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/656735.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓逆向学习之ADB的配置和使用及刷机root

ADB的配置和使用 ADB即Android Debug Bridge,安卓调试桥,是谷歌为安卓开发者提供的开发工具之一,可以让你的电脑以指令窗口的方式控制手机。可以在安卓开发者网页中的 SDK 平台工具页面下直接下载对应系统的 adb 配置文件,大小只…

矩阵键盘的使用

在定义局部变量时,一定要给该变量赋初值。在这个程序中,给按键按下的返回值变量 KeyNum 赋值为 20 。 矩阵键盘线行扫描法的学习链接:https://www.bilibili.com/video/BV1dv411z7Gd/?spm_id_from333.999.0.0&vd_sourceb91967c499b23106…

Python 因果推断(上)

引言 原文:causal-methods.github.io/Book/Introduction.html 译者:飞龙 协议:CC BY-NC-SA 4.0 作者:Vitor Kamada 电子邮件:econometrics.methodsgmail.com 最后更新日期:2020 年 8 月 15 日 这本书是使…

jupyter出现问题ModuleNotFoundError: No module named ‘exceptiongroup‘

今天使用pyg的jupyter环境发现这个环境没法用, 所以只能把这个kernel给重删了然后再装,操作记录如下 查看kernel jupyter kernelspec list注意不是jupyter kernel --list 需要加关键字spec, 删除kernel jupyter kernelspec remove pyg当重新安装这个kernel时可能…

Redis -- 常用数据结构,认识数据类型和编码方式

"人生就像骑自行车,要保持平衡,就必须保持前进。" — 爱因斯坦 说到数据结构,或许就能想到哈希表,列表集合等数据结构。对于redis来说对应的key的value的形式也可以是这些数据结构,如下: 针对上面…

导出Mysql数据库表名和字段并合并成一个word

参考链接: 导出MySQL数据库所有库和字段注释及相关信息为word文档——工具类 java - Apache POI - How to copy tables from one docx to another docx - Stack Overflow 领导让我研究下一个低代码平台的代码,我就想着做一个把数据库字段直接导出来的…

【论文阅读】Long-Tailed Recognition via Weight Balancing(CVPR2022)附MaxNorm的代码

目录 论文使用方法weight decayMaxNorm 如果使用原来的代码报错的可以看下面这个 论文 问题:真实世界中普遍存在长尾识别问题,朴素训练产生的模型在更高准确率方面偏向于普通类,导致稀有的类别准确率偏低。 key:解决LTR的关键是平衡各方面&a…

Android 12 系统开机动画

一、查找Android系统提供的开机动画 在Android系统源码目录下输入 find ./ -name "bootanimation.zip" 如图所示 所输出的路劲即为bootanimation.zip所在路径,每个系统都不一样,建议用命令查找 二、复制到对应目录下 android12\out\target\…

AIGC,ChatGPT4 实际需求效办公自动化函数应用

用实际需求来给大家演示一下ChatGPT如何助力办应用。 首先我们来提取年份值 我们将公式复制到表格即可。 接下来进行向下填充。 就得到了所有年份, 接下来我们完成第二个需求,按年份统计销售额。 Prompt:有一个表格C列是年份,D列…

【干货】【常用电子元器件介绍】【电容】(二)--电容器的主要参数、测量、选择与应用

声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。 一、 电容器的主要参数 1.1 耐压 耐压(Voltage Rating)是指电容器在电路中长期有效地工作而不被击穿所能承受的最大直流电压。对于结构、介质、容量相同的…

【计算机网络】网络的网络

网络的网络 客户 customer 接入ISP提供商 provider 全球承载ISP多个ISP的层级结构 第一层ISP (tier-1 ISP ) 位于顶部 区域ISP (reginal ISP)Level 3通信 ,AT&T,Sprint ,NTT存在点&#x…

Spring AOP实现

Spring AOP实现 AOP概述什么是AOP什么是Spring AOP Spring AOP快速入门引入依赖实现计时器 Spring AOP详解Spring AOP核心概念切点(Pointcut)连接点(Join Point)通知(Advice)切面(Aspect) 通知类型注意事项 PointCut多个切面切面优先级 Order切点表达式execution表达式annotati…

Ubuntu 隐藏Telnet主机SSH服务时显示版本信息问题

一、背景 默认情况下,我们通过telnet服务器的22端口,能够获取OpenSSH服务的banner信息(如下图所示)。而低版本的OpenSSH存在许多高危漏洞。。为了安全我们要隐藏这个信息。 二、隐藏Telnet版本信息 当使用telnet命令,telnet 192.168.31.20…

前缀和、差分

0x03前缀和、差分 文章目录 0x03前缀和、差分一维前缀和二维前缀和差分一维差分二维差分 习题T1T2T3 一维前缀和 数组前n项和 s [ k ] ∑ i 1 k a [ i ] s[k]\sum_{i1}^ka[i] s[k]∑i1k​a[i] s[i]s[i-1]a[i];二维前缀和 设s[i][j]表示以(1,1)为顶点&#xff0…

【Python实战】Python多线程批量采集图片

前言 本文来介绍如何多线程采集图片,多线程效率更快,但是,我们单一IP请求过于频繁,可能会被反爬,被封IP,所以,我们就要用到IP代理池,这里,我给大家推荐一个,可…

5.10 动态优先级模式

动态优先级模式与静态优先级模式类似,但动态优先级模式会随着任务运行时条件的改变自动调整任务优先级。调整任务优先级的策略有很多种,最常见的是“最早截止期优先”(Earliest Deadline First),即优先级最高的任务是离截止时间最近的任务。动…

11个技巧让你的Python性能起飞

更多资料获取 📚 个人网站:ipengtao.com Python 是一门非常强大且易于学习的编程语言,但在处理大规模数据或复杂任务时,可能会遇到性能瓶颈。为了让你的 Python 代码运行更快,本文将介绍一些提高 Python 性能的技巧和…

uniapp如何添加多个表单数组?

目录 一、实现思路 二、实现步骤 ①view部分展示 ②JavaScript 内容 ③css中样式展示 三、效果展示 四、小结 注意事项 总结模板: 一、实现思路 1.在 data 中定义一个数组,用于存储表单项的数据 2.在模板中使用 v-for 指令渲染表单项 3.在 methods 中…

如何快速搭建个人博客

说明:本文介绍如何使用Halo框架快速搭建个人博客,我用的是阿里云的云服务器,操作系统是CentOS 7.0。 安装Docker&DockerCompose (1)Docker安装 Docker的安装参考,Docker安装&卸载; …

AI算力专题:算力系列之四-各省算力规划建设梳理-绿色低碳高质量发展-部署算力建设AI产业研究

今天分享的是AI算力系列深度研究报告:《AI算力专题:算力系列之四-各省算力规划建设梳理-绿色低碳高质量发展-部署算力建设AI产业研究》。 (报告出品方:中泰证券) 报告共计:40页 数据中心能耗情况 随着越…