当前位置: 首页 > news >正文

Python Ai语音识别教程

语音识别是将人类语音转换为文本的技术,在现代应用中非常有用。本教程将介绍如何使用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.dtcms.com/a/263064.html

相关文章:

  • 2 大语言模型基础-2.2 生成式预训练语言模型GPT-2.2.2 有监督下游任务微调-Instruct-GPT强化学习奖励模型的结构改造与维度转换解析
  • Spring生态:云原生与AI的革新突破
  • Linux 系统管理:高效运维与性能优化
  • FastAPI—学习1
  • 本地服务器部署后外网怎么访问不了?内网地址映射互联网上无法连接问题的排查
  • CppCon 2018 学习:A Little Order! Delving into the STL sorting algorithms
  • MySQL索引原理-主键索引与普通索引
  • 【软考高项论文】论信息系统项目的干系人管理
  • ACT-R 7.28
  • pbootcms程序运行异常: Modulo by zero,位置:/www/wwwroot/****/core/function/helper.php
  • 链表题解——设计链表【LeetCode】
  • langchain从入门到精通(二十四)——RAG优化策略(二)多查询结果融合策略及 RRF
  • [特殊字符]️ Hyperf框架的数据库查询(ORM组件)
  • iOS 接口频繁请求导致流量激增?抓包分析定位与修复全流程
  • Reactor重试操作
  • 十大排序算法汇总
  • 2025年06月30日Github流行趋势
  • 创客匠人解析强 IP 时代创始人 IP 打造的底层逻辑与破局之道
  • Java开发新变革!飞算JavaAI深度剖析与实战指南
  • 一文讲清楚React中类组件与函数组件的区别与联系
  • 手机屏暗点缺陷修复及相关液晶线路激光修复原理
  • 类图+案例+代码详解:软件设计模式----生成器模式(建造者模式)
  • Franka机器人赋能RoboCulture研究,打造生物实验室智能解决方案
  • Vue防抖节流
  • 最新版 JT/T808 终端模拟器,协议功能验证、平台对接测试、数据交互调试
  • Spring Cloud Bus 和 Spring Cloud Stream
  • HarmonyOS NEXT仓颉开发语言实战案例:外卖App
  • NAT 类型及 P2P 穿透
  • 人工智能和云计算对金融未来的影响
  • Docker 入门教程(九):容器网络与通信机制