语音识别是将人类语音转换为文本的技术,在现代应用中非常有用。本教程将介绍如何使用Python实现基本的AI语音识别功能。

一、文字转语音

#文字转语音
#安装第三方库 pip install pyttsx3
#导包 : import pyttsx3import pyttsx3#创建语音引擎
a1 = pyttsx3.init()# #转换为语音
# a1.say ('大家好')#保存音频到本地
a1.save_to_file(text='大家好', filename='1.mp3')#执行语音(播放)
a1.runAndWait()

二、文本转语音

#文本转语音import pyttsx3a1 = pyttsx3.init()  # 使用 init() 来初始化引擎# 获取指定文本内容转换语音
with open('1.txt', 'r', encoding='utf-8') as f:a2 = f.read()a1.say(a2)   #播放
#a1.save_to_file(a2, filename='3.mp3') #保存本地
#a1.save_to_file(a2, filename=r"D:\桌面\6\2.mp3")#指定目录保存
a1.runAndWait()

三、设置语速、音量

# 设置语速、音量import pyttsx3a1 = pyttsx3.init()# 设置语速(默认200)
a1.setProperty('rate', 200)
# 设置音量(1.0)
a1.setProperty('volume', 1)#a1.say("你好") #播放
a1.save_to_file("你好", '4.mp3') #保存本地
a1.runAndWait()

四、语音转文字

语音模型下载网站:VOSK 模型

# 语音转文字/语音识别
# 安装三方库(阿里云源):pip install vosk -i https://mirrors.aliyun.com/pypi/simple/
# 检查安装版本命令pip show vosk
# 导包:from vosk import Model, KaldiRecognizer
# 导包:import wave
# 导包:import json
# 语音识别模型下载:https://alphacephei.com/vosk/modelsfrom vosk import Model, KaldiRecognizer
import wave
import json# 加载语音模型'zh-2'为下载模型
a1 = Model('zh-2')
# 打开音频文件
a2 = wave.open('1.mp3')
# 创建语音识别器  KaldiRecognizer(模型对象, 采样率16000)
a3 = KaldiRecognizer(a1, 16000)
print('开始识别')
while True:# 每次读取音频文件多少帧(1秒=16000帧)a4 = a2.readframes(4000)# 如果读取不到数据就退出循环if not a4:break# 传入读取数据进行识别a3.AcceptWaveform(a4)
# 识别器对象.FinalResult() 返回的是所有识别结果(json格式)
a5 = json.loads(a3.FinalResult())['text'].replace(' ', '')
print(a5)

五、实时语音识别为文字

# 实时语音识别
# 安装三方库(阿里源):pip install pyaudio -i https://mirrors.aliyun.com/pypi/simple/ (处理麦克风相关组件)
# 检查pyaudio是否安装成功
# python -c "import pyaudio; print('PyAudio 已安装,版本:', pyaudio.__version__)"
# 导包:import pyaudio
# frames_per_bufferimport pyaudio
from vosk import Model, KaldiRecognizer
import json# 加载模型
a1 = Model('zh-2')
# 创建麦克风对象
p = pyaudio.PyAudio()
# 接收麦克风
a2 = p.open(# 16位深度音频数据format=pyaudio.paInt16,# 声道,单声道channels=1,# 采样率rate=16000,# 从麦克风获取数据input=True,# 每次读取数据块大小frames_per_buffer=4000
)
# 创建语音识别器
a3 = KaldiRecognizer(a1, 16000)
print('开始实时识别')while True:# 从麦克风读取数据a4 = a2.read(4000)# 如果读取到数据if a3.AcceptWaveform(a4):# 实时输出识别结果a5 = a3.Result()a6 = json.loads(a5)['text'].replace(' ', '')print(a6)

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

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

相关文章

Day11 制作窗口

文章目录 1. 显示窗口(harib08d)2. 消除闪烁1(harib08g)3. 消除闪烁2(harib08h) 本章的前三节做了如下修改: 解决了鼠标无法隐藏在屏幕右侧和下侧的问题。当鼠标隐藏在右侧时会在屏幕最左侧产生…

python+uniapp基于微信小程序蜀味道江湖餐饮管理系统nodejs+java

文章目录 具体实现截图本项目支持的技术路线源码获取详细视频演示:文章底部获取博主联系方式!!!!本系统开发思路进度安排及各阶段主要任务java类核心代码部分展示主要参考文献:源码获取/详细视频演示 ##项目…

postgresql增量备份系列二 pg_probackup

已经很久没有发文章了,主要是最近工作上的内容都不适合发文章公开。可能往后文章发表也不这么频繁了,不过大家有问题我们可以交流。之前有写过PG增量备份的其他工具使用方法,pg_probackup也是应用比较多的PG备份工具。 一. pg_probackup pg_probackup 是一个用于管理 Postg…

云手机主要是指什么?

云手机是指一种可以运行在云服务器中的手机,主要是将云计算技术运用于网络终端服务,通过云服务器来实现云服务的手机,也是一款深度结合了网络服务的手机,通过自带的系统和网络终端可以通过网络实现众多功能。 那么,下面…

CAU数据挖掘 支持向量机

SVM大致思想 线性分类问题 在一群点中用线性函数分类: 但也有线性不可分问题: 线性不可分问题: 最大间隔法 两个平行超平面间隔距离最大 软间隔 部分难以区分的点忽略 升维 通过升维将非线性变为线性 计算统计理论基础 学习过…

探索理解 Spring AI Advisors:构建可扩展的 AI 应用

Spring AI Advisors API 提供了一种灵活且强大的方式来拦截、修改和增强 Spring 应用程序中的 AI 驱动交互。其核心思想类似于 Spring AOP(面向切面编程)中的“通知”(Advice),允许开发者在不修改核心业务逻辑的情况下…

Linux SSH服务全面配置指南:从基础到安全加固

Linux SSH服务全面配置指南:从基础到安全加固 概述 作为网络安全工程师,SSH(Secure Shell)服务的安全配置是我们日常工作中不可忽视的重要环节。本文将从基础配置到高级安全加固,全面解析SSH服务的各项参数&#xff…

.NET测试工具Parasoft dotTEST内置安全标准,编码合规更高效

在追求开发速度的时代,确保代码安全并满足严苛的行业合规标准如OWASP、CWE、PCI DSS、ISO 26262等已成为开发者的核心挑战,但开发人员常因复杂的编码标准和漏洞排查而效率低下。.NET测试工具Parasoft dotTEST内置安全标准,实现即插即用&#…

对象的finalization机制Test

Java语言提供了对象终止(finalization)机制来允许开发人员自定义对象被销毁之前的处理逻辑。当垃圾回收器发现没有引用指向一个对象时,通常接下来要做的就是垃圾回收,即清除该对象,而finalization机制使得在清除此对象之前,总会先…

AI初学者如何对大模型进行微调?——零基础保姆级实战指南

仅需8GB显存,三步完成个人专属大模型训练 四步实战:从环境配置到模型发布 步骤1:云端环境搭建(10分钟) 推荐使用阿里魔塔ModelScope免费GPU资源: # 注册后执行环境初始化 pip3 install --upgrade pip pi…

“单一职责”模式之装饰器模式

目录 “单一职责”模式装饰器模式 Decorator引例动机 Motivation模式定义结构 Structure要点总结 “单一职责”模式 在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重…

idea, CreateProcess error=206, 文件名或扩展名太长

idea, CreateProcess error206, 文件名或扩展名太长 解决 “CreateProcess error206, 文件名或扩展名太长” 错误 CreateProcess error206 是 Windows 系统特有的错误,表示命令行参数超出了 Windows 的 32767 字符限制。这个问题在 Java 开发中尤其常见&#xff0c…

一键高效率图片MD5修改工具PHP版

文章目录 图片MD5修改工具项目简介功能特点技术原理系统需求安装方法使用方法Web界面模式命令行模式文件结构常见问题注意事项开发者信息效果演示更多干货🎁1.如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “👍点赞” “✍️评论” “💙收藏” 一键三连哦!2.❤️…

跨主机用 Docker Compose 部署 PostgreSQL + PostGIS 主从

q下面是跨主机用 Docker Compose 部署 PostgreSQL PostGIS 主从复制的完整详细步骤(主库 从库),主从都用官方 PostGIS 镜像 postgis/postgis:15-3.3,并注意网络与持久化。复制即可。 🚩 跨主机 PostgreSQL PostGIS …

会议动态|千眼狼高速摄像机、DIC测量系统等科学仪器亮相第十五届全国爆炸力学学术会议

第十五届全国爆炸力学学术会议于6月28日在绍兴盛大召开,会议汇聚来自全国爆炸力学与冲击领域专家学者2000余人,聚焦“爆炸与冲击动力学工程应用”、“材料动态力学行为与损伤断裂“、“工程爆破与毁伤评估”、“含能材料与水中爆炸”、“结构动态响应与安…

vscode一个文件夹有残余的git仓库文件,已经失效了,怎样进行清空仓库残余文件并重新初始化git--ubuntu

vscode一个文件夹有残余的git仓库文件,已经失效了,怎样进行清空仓库残余文件并重新初始化git–ubuntu 首先要把工作区里重要的文件备份好,防止操作时数据丢失。删除.git文件夹 rm -rf .git初始化 (base) zd4090zd4090-System-Product-Name:…

6月30日作业

思维导图 一、读取文件&#xff0c;效果类似 cat 的功能 代码 #include <25041head.h>int main(int argc, const char *argv[]) {//打开文件printf("请输入你要读取的文件路径&#xff1a;");char str[128]"";scanf("%s",str);FILE *fpf…

ubuntu源码安装python3.13遇到Could not build the ssl module!解决方法

我在Ubuntu 24.04.2 LTS下载源码安装Python 3.13.5时&#xff1a; #./configure --enable-loadable-sqlite-extensions --enable-optimizations #make 显示错误信息&#xff1a; Could not build the ssl module! Python requires a OpenSSL 1.1.1 or newer 查询我的openssl版…

Ai工具分享(2):Vscode+Cline无限免费的使用教程

大家好,我是程序员寒山。 今天给大家分享一个最新的免费使用的Ai插件Cline的方法,之前也给大家分享过一些免费的方案,但是这些都是随时在变化,之前推荐的很多都不能使用了。 Ai工具分享(2):Vscode+Cline无限免费的使用教 今天再给大家推荐一个,可以免费使用,且没有token…

Docker 目录迁移脚本【Windows Junction 类型链接】

Docker 目录迁移脚本完整教程&#xff1a;从诞生到自动化使用 一、脚本诞生背景与开发历程 1. 为什么需要迁移 Docker 目录&#xff1f; 系统盘空间压力&#xff1a;Docker 镜像和容器数据通常存储在C:\Users\用户名目录下&#xff0c;随着使用时间增长会占用大量系统盘空间…