百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

使用python操作麦克风录制讲话,实时语音识别转换为文字

off999 2024-11-13 11:43 26 浏览 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 ipywidgets

Vosk

下载语音识别模型 ,可以使用下面代码进行下载,也可以自己下载并解压到当前文件夹,建议手动下载 ,地址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()

相关推荐

怎么设置屏保密码(怎么设置屏保密码和锁定时间)

屏保密码设置的方法步骤1、鼠标左键单击桌面下的【开始】菜单键;点击【控制面板】;2、点击【外观和个性化】;然后点击【个性化】选项卡中的【更改屏幕保护程序】;3、选择一个自己喜欢的程序,勾选,然后再点击...

无法下载ie浏览器怎么办(ie浏览器显示无法下载)

如果您在使用IE浏览器时遇到无法下载的问题,以下是一些常见的解决办法:1.清除浏览器缓存:打开IE浏览器,依次点击工具(齿轮图标)->Internet选项->常规选项->...

笔记本w7可以升级w10吗(笔记本w7可以升级w10吗)

要将wln7升级到win10,需要先确保计算机配置符合win10的最低要求,包括处理器、内存、硬盘空间等。然后,可以下载win10的升级助手或镜像文件,在升级前备份重要数据,选择需要保留的文件和设置,...

如何卸载电脑浏览器软件(怎样卸载电脑浏览器)
如何卸载电脑浏览器软件(怎样卸载电脑浏览器)

如果我们发现我们从浏览器里面下载的东西删不了,这个时候,我们就可能是由于下载到了了一些病毒软件或者是病毒程序而导致的,如果说想要解决这个问题,方法的话也很简单,我们可以通过杀毒软件对其进行杀毒,然后再进行卸载,基本上就可以删除了。app卸载...

2025-11-18 09:51 off999

联想怎么看电脑配置和型号(联想怎么看电脑配置和型号笔记本)

笔记本看型号有推荐三种方法:第一种,点击你笔记本上的(开始),然后找到(运行)打开,在里面的输入框里输入(dxdiag)点击确定,你就可以看见笔记本型号,系统型号等笔记本信息。第二种,就是在你的电脑上...

怎么ghost电脑系统(怎样ghost)

使用GHOST软件备份系统即可。1、网上下载一键GOST安装好,重启电脑运行一键gost-选择手动进入GOST。2、进入GHOST的操作界面,点OK。3、选择菜单到Local(本机)--Partiti...

u盘读取软件下载(u盘读取器下载)

手机播放U盘里的视频不用刻意的去安装什么播放器,一般手机里自带的播放器就能够直接播放U盘里的一般常见的视频。只要你要播放的视频,都是平时在电脑上或者电视上能够正常播放的视频,一般在手机里面它的系统自带...

office2020安装包百度云下载

Office2020和Office2019是微软的办公套件产品,两个版本之间有以下区别:1.发布时间:Office2020于2021年10月发布,而Office2019于2018年9月发布。...

硬盘恢复分区(硬盘恢复分区怎么删除)

1、在电脑上下载DiskGenius软件。2、双击运行该软件,软件会自动识别硬盘。当软件自动识别硬盘之后,右键单击硬盘的盘符,出现下拉菜单栏,选择搜索已丢失分区(重建分区表)选项。3、右键单击硬盘盘符...

edge 浏览器(edge浏览器官网下载)
edge 浏览器(edge浏览器官网下载)

目前没有,如果是平板安装了WIN10是会内置MicrosoftEdge浏览器的。edge是由微软开发的基于Chromium开源项目及其他开源软件的网页浏览器。Edge浏览器主要特点是能够支持目前主流的Web技术,作为Windows10自带...

2025-11-18 06:51 off999

网易163邮箱免费注册(163网易免费邮件注册)
网易163邮箱免费注册(163网易免费邮件注册)

163邮箱登录入口页面官方地址:https://mail.163.com/163邮箱登录注册方法1、进入邮箱登入首页,我们点击右下角“去注册”按钮,进入注册界面;2、这里直接填写账号和密码内容,点一下同意那里呈蓝色圆点;再点下一步。3、再填...

2025-11-18 06:03 off999

苹果商城app下载安装(苹果商店app免费下载)

一、苹果手机下载软件显示APP内购买的意思是APP可以免费下载使用,但是该APP内有付费内容,也就是通常所说的收费道具。二、不是所有应用都会提供App内购买项目。如果某个应用提供App内购买...

惠普电脑中国官网(惠普手提电脑官网)

https://support.hp.com/cn是惠普笔记本售后服务官网。惠普维修服务中心通过整合线上线下相关资源,向国内用户提供方便快捷、安全可靠的优质电子产品维修服务。目前拥有北京6家、全国30...

windows2003密钥序列号(win2003 密钥)

没有密钥就无法完成程序安装。使用或者购买密钥才能安装

电脑产品密钥在哪里找win10(电脑产品密钥在哪里找新机)

要查看电脑上Windows10的产品密钥,你可以按照以下步骤进行操作:打开“开始”菜单,然后点击“设置”图标(齿轮状图标)。在“设置”窗口中,点击“更新和安全”选项。在左侧导航栏中,选择“激活”选项...

取消回复欢迎 发表评论: