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

语音识别(非实时)

1.环境

python :3.10.14

2.完整代码

import whisper #whisper
import wave  # 使用wave库可读、写wav类型的音频文件
import pyaudio  # 使用pyaudio库可以进行录音,播放,生成wav文件
def record(time):  # 录音程序# 定义数据流块CHUNK = 1024  # 音频帧率(也就是每次读取的数据是多少,默认1024)FORMAT = pyaudio.paInt16  # 采样时生成wav文件正常格式CHANNELS = 1  # 音轨数(每条音轨定义了该条音轨的属性,如音轨的音色、音色库、通道数、输入/输出端口、音量等。可以多个音轨,不唯一)RATE = 16000  # 采样率(即每秒采样多少数据)RECORD_SECONDS = time  # 录音时间WAVE_OUTPUT_FILENAME = "./output.wav"  # 保存音频路径p = pyaudio.PyAudio()  # 创建PyAudio对象stream = p.open(format=FORMAT,  # 采样生成wav文件的正常格式channels=CHANNELS,  # 音轨数rate=RATE,  # 采样率input=True,  # Ture代表这是一条输入流,False代表这不是输入流frames_per_buffer=CHUNK)  # 每个缓冲多少帧print("* 开始录音")  # 开始录音标志frames = []  # 定义frames为一个空列表for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):  # 计算要读多少次,每秒的采样率/每次读多少数据*录音时间=需要读多少次data = stream.read(CHUNK)  # 每次读chunk个数据frames.append(data)  # 将读出的数据保存到列表中print("* 结束语音")  # 结束录音标志stream.stop_stream()  # 停止输入流stream.close()  # 关闭输入流p.terminate()  # 终止pyaudiowf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')  # 以'wb‘二进制流写的方式打开一个文件wf.setnchannels(CHANNELS)  # 设置音轨数wf.setsampwidth(p.get_sample_size(FORMAT))  # 设置采样点数据的格式,和FOMART保持一致wf.setframerate(RATE)  # 设置采样率与RATE要一致wf.writeframes(b''.join(frames))  # 将声音数据写入文件wf.close()  # 数据流保存完,关闭文件
if __name__ == '__main__':# model = whisper.load_model("medium")model = whisper.load_model("small")record(5)  # 定义录音时间,单位/sresult = model.transcribe("./output.wav",language='chinese',fp16 = False)s = result["text"]print("语音转文字"+s)

3.问题

1.这里面用的是openAI的whisper模型,直接代码跑起来自动下载
2.有问题私信联系

http://www.lryc.cn/news/447842.html

相关文章:

  • 【计算机网络】--URL统一资源定位符
  • 在成都建“圈”五年,鲲鹏让智能化新风吹遍巴蜀大地
  • Unity图形用户界面!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。(万字解析)
  • 【JAVA报错已解决】Java.lang.NullPointerException
  • JSON 教程
  • HBase 的基本架构 详解
  • crypt.h:No such file or directory报错处理
  • 网络消费维权的9个常见法律问题
  • detectron2是怎么建立模型的?以SparseInst代码为例
  • kafka监控平台Kafdrop:使用记录
  • 的使用和内联函数
  • 征程6 上基于 DEB 工具实现包管理
  • 【git】一文详解: git rebase到底有啥问题
  • 高性能计算应用优化实践之WRF
  • nsight-compute使用教程
  • 【深度学习】03-神经网络01-4 神经网络的pytorch搭建和参数计算
  • 我与Linux的爱恋:命令行参数|环境变量
  • django drf 统一Response格式
  • SM2协同签名算法中随机数K的随机性对算法安全的影响
  • 解决setMouseTracking(true)后还是无法触发mouseMoveEvent的问题
  • 基于深度学习的花卉智能分类识别系统
  • Springboot集成MongoDb快速入门
  • DERT目标检测—End-to-End Object Detection with Transformers
  • 软件后端开发速度慢的科技公司老板有没有思考如何破局
  • 开放原子超级链内核XuperCore可搭建区块链
  • 【Qualcomm】高通SNPE框架的使用 | 原始模型转换为量化的DLC文件 | 在Android的CPU端运行模型
  • C++map与set
  • 随手记:前端一些定位bug的方法
  • 【深度学习】03-神经网络2-1损失函数
  • Python爬虫APP程序:构建智能化数据抓取工具