使用python操作麦克风录制讲话,实时语音识别转换为文字
off999 2024-11-13 11:43 35 浏览 0 评论
在这个项目中,我们将建立一个系统,它可以使用麦克风录制现场讲话,然后通过语音识别进行转录。这可用于自动记录和转录会议、讲座和其他活动,能过自动记录演讲内容。
我们将编写代码,来开始和停止录音,让语音被自动录制和转录。
项目步骤
使用 pyaudio 录制麦克风音频
使用 vosk 创建语音识别系统
* 可选 使用 recasepunc 为文本记录添加标点符号
请在本地安装以下软件:
Python 3.8+
Python 软件包
# pip install vosk
# pip install pydub
# pip install transformers
# pip install torch -f https://download.pytorch.org/whl/torch_stable.html
# pip install pyaudio
# pip install ipywidgetsVosk
下载语音识别模型 ,可以使用下面代码进行下载,也可以自己下载并解压到当前文件夹,建议手动下载 ,地址VOSK Models
from vosk import Model
# 自动下载
model = Model(model_name="vosk-model-cn-0.22")
# 手动下载并指定
model = Model(model_path="./vosk-model-cn-0.22")Pyaudio
Pyaudio 的安装可能有点麻烦,因为它依赖于系统软件包。请查看PyAudio: Cross-platform audio I/O for Python, with PortAudio,了解各操作系统的具体说明。
您还需要找出正确的录音设备。运行这段代码来查找麦克风的索引信息,需要确定机器能用的设备id:
# Find audio device index
import pyaudio
p = pyaudio.PyAudio()
for i in range(p.get_device_count()):
print(p.get_device_info_by_index(i))
p.terminate()完整代码
# -*- coding: utf-8 -*-
# @author: cc
# @time: 2024/4/22
# microphone.py
# pip install vosk
# pip install pydub
# pip install transformers
# pip install torch -f https://download.pytorch.org/whl/torch_stable.html
# pip install pyaudio
# pip install ipywidgets
import ipywidgets as widgets
from IPython.display import display
from queue import Queue
import wave
from threading import Thread
import pyaudio
import json
from vosk import Model, KaldiRecognizer
import time
p = pyaudio.PyAudio()
messages = Queue()
recordings = Queue()
CHANNELS = 1
FRAME_RATE = 16000
RECORD_SECONDS = 2
AUDIO_FORMAT = pyaudio.paInt16
SAMPLE_SIZE = 2
def record_microphone(chunk=1024):
p = pyaudio.PyAudio()
stream = p.open(format=AUDIO_FORMAT,
channels=CHANNELS,
rate=FRAME_RATE,
input=True,
input_device_index=0, # 这是麦克风的索引id
frames_per_buffer=chunk)
frames = []
while not messages.empty():
data = stream.read(chunk)
print(">>添加语音数据")
frames.append(data)
if len(frames) >= (FRAME_RATE * RECORD_SECONDS) / chunk:
recordings.put(frames.copy())
frames = []
# for i in range(0, int(FRAME_RATE / chunk * RECORD_SECONDS)):
# data = stream.read(chunk)
# frames.append(data)
stream.stop_stream()
stream.close()
p.terminate()
wf = wave.open('output.wav', 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(AUDIO_FORMAT))
wf.setframerate(FRAME_RATE)
wf.writeframes(b''.join(frames))
wf.close()
model = Model(model_path="./vosk-model-cn-0.22")
rec = KaldiRecognizer(model, FRAME_RATE)
rec.SetWords(True)
def speech_recognition():
while not messages.empty():
print("识别语音")
frames = recordings.get()
rec.AcceptWaveform(b''.join(frames))
result = rec.Result()
text = json.loads(result)["text"]
print("识别的文字",text)
# cased = subprocess.check_output('python recasepunc/recasepunc.py predict recasepunc/checkpoint', shell=True,
# text=True, input=text)
# output.append_stdout(cased)
time.sleep(1)
record_microphone()
def start_recording():
messages.put(True)
display("Starting...")
record = Thread(target=record_microphone)
record.start()
transcribe = Thread(target=speech_recognition)
transcribe.start()
# for i in range(p.get_device_count()):
# print(p.get_device_info_by_index(i))
#
# p.terminate()
start_recording()相关推荐
- 魔兽争霸3冰封王座官网下载(魔兽争霸3冰封王座1.20e中文版下载_魔兽争霸3下载)
-
没法下载,因为没有说明在什么平台下载可以在网易的官方网站上进行下载,下载地址如下:https://dz.blizzard.cn/下载的时候请选择中间的“平台完整版”,这个版本包含了《魔兽争霸3》游戏本...
- 四人麻将(四人麻将图片)
-
1.标准打法:常规的打缺打法,不附加任何的特殊规则。2.标准下雨:在标准打法的基础上,加入下雨的功能,也就是杠牌。下雨分为明杠和暗杠。明杠:①玩家手中有三张一样的牌,其它玩家打出了第四张一样的牌,...
- 美图秀秀app下载安装免费(美美秀图手机版下载)
-
美图秀秀下载了找不到,应该是因为你的内存的原因,安装失败了。美图秀秀是一款使用很普遍的美图软件,可以满足大多数用户的需求,比如自己p图,或者是拼图都很好。可是,你发现你下载了美图秀秀,却在手机桌面没有...
- 街机游戏厅app(街机游戏厅app大全)
-
以下是几个不错的iOS街机游戏厅:MAME4iOS:这是一款非常流行的iOS街机游戏厅,可以让你在iPhone或iPad上运行多个街机游戏。iCade:这是一款专门为iCade控制器设计的街机游戏...
- 海外加速器下载(加速器中国免费)
-
迅游不能下载海外游戏的原因是因为一些海外游戏需要进行版权验证,而迅游没有获得这些游戏的版权许可。此外,由于不同国家的游戏法规和政策不同,迅游有时需要根据不同的规定进行调整,这也可能会限制用户下载一些海...
- 日语输入法app下载(simeji日语输入法官网下载)
-
谷歌输入法。安卓可以用的最好用的了吧,在设置里下载好所需要语言,打字时按那个切换即可。另外还有一个触宝,个人觉得不如谷歌。可以打出日文的输入法,很不错的日语输入法。安装后请在系统中添加输入法,即可使...
-
- 字体设计网站(字体设计 网站)
-
那就到这个网站,每次只能输入一个字,从小篆到甲骨文:http://www.internationalscientific.org就玩个静态页,很简单啊,教你一个作弊方法(反正你来这里讨教也不是自己完成作业),就是找一个你认为合适你作业要求...
-
2026-01-17 01:51 off999
-
- windows7旗舰版下载地址(win7官方旗舰版下载教程)
-
最简单的方法就是,下载完镜像文件后,直接把镜像文件解压,解压到非C盘,然后在解压文件里面找到setup.exe,点击运行即可。安装系统完成后,在C盘找到一个Windows.old(好几个GB,是旧系统打包在这里,垃圾文件了)删除即可。扩展资...
-
2026-01-17 01:43 off999
- 全民斗地主免费(全民斗地主免费下载·点开即玩版.直达首页.top)
-
趣头条是开发的比较早的一款阅读看新闻资讯以及看视频听音乐能赚钱的软件了,而且在下载软件排行榜上也是名次靠前的存在,这充分说明了这个软件的内容是得到了广大网民的认可和喜爱,趣头条里有很多好玩的游戏包括这...
- 五十本巅峰带颜色的书(五十本巅峰带颜色的书高僧修行手册)
-
《我的时尚穿搭规则》,是中信出版社2011年出版的图书,作者是尼娜·加西亚。 《我的时尚穿搭规则:让你在每个场合都焕发光彩》内容简介:这个时代,任何人都无法拒绝时尚,它和我们的生活息息相关。 “最...
- 7723游戏盒子官方正版(7723游戏盒子官方正版2023)
-
1、7723是通过在互联网上下载和安装得到的。2、因为7723是一款软件,需要从官方网站或第三方下载站点下载。下载过程需要考虑到网络速度、软件版本、安全性等因素,如果没有良好的网络环境或下载方式不正确...
- 广场资源看电视app(搜索电视广场)
-
电视机投屏没有投屏设备的原因是因为手机和电视没有在同一网络下,将电视和手机连接到同一网络即可实现投屏,具体的操作步骤如下:1,打开糖豆广场舞,选择要学习的舞蹈视频并打开2.点击【TV】键,与电视设备连...
- 纯净系统之家官网(纯净系统基地官网)
-
系统之家发布的Win10纯净版是没有预装激活工具的,您需要自行激活。以下是操作步骤:1.打开“设置”页面,选择“更新和安全”选项。2.在左侧菜单栏中,选择“激活”。3.点击“更改产品密钥”按钮,...
- 免费无限破解版游戏大全下载
-
靠谱助手、烧饼、葫芦侠修改器、八门神器、全能破解就是不用花钱就能买游戏里的商品安全岂见打开飞行模式内购更安全不会扣费手机先ROOT,之后下对应的破解软件,这样成功率比较高。虎牙YOWA云游戏...
-
- 视频相册制作软件免费版(视频相册制作下载)
-
电脑端的软件推荐第一个会声会影,会声会影这个软件简单易上手,制作出来电子相册很美,软件本身简单容易操作,没有水印。第二个推荐快剪辑,快剪辑也是一个制作电子相册非常好的软件,这个软件简单易上手,没有什么操作难度。第三个电脑端的软件编辑星,编辑...
-
2026-01-16 23:51 off999
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
Python 批量卸载关联包 pip-autoremove
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
