whisper 语音识别项目部署

whisper 语音识别项目部署

    正在检查是否收录...

1.安装anaconda软件
在如下网盘免费获取软件:
链接:https://pan.baidu.com/s/1zOZCQOeiDhx6ebHh5zNasA
提取码:hfnd

2.使用conda命令创建python3.8环境

conda create -n whisper python==3.8 

3.进入whisper虚拟环境

conda activate whisper 

4.安装cuda10.0的PyTorch环境

pip --trusted-host pypi.tuna.tsinghua.edu.cn install torch==1.10.1+cu102 torchvision==0.11.2+cu102 torchaudio==0.10.1 -f https://download.pytorch.org/whl/torch_stable.html 

5.使用命令安装whisper库包

pip install -U openai-whisper 

6.简单使用命令识别一段语音:

whisper output.wav --model medium --language Chinese 

6.安装和配置ffmpeg软件
在如下网盘免费获取软件:

配置只需要解压后将文件里面的bin路径放入系统环境变量Path中即可

7.安装cuda软件
cuda11.0软件百度网盘获取:
链接:https://pan.baidu.com/s/1KOJfAVR6nKmVafNnmbsYDw
提取码:lblh
cudnn11.0百度网盘获取:
链接:https://pan.baidu.com/s/1CBuq7jflihEDuclSq-RTJA
提取码:efgu

6.打开pycharm软件编写代码

7.可以实时录音并且语音转中文的代码编写(使用cpu运行)

import whisper import zhconv 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("* recording") # 开始录音标志 frames = [] # 定义frames为一个空列表 for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): # 计算要读多少次,每秒的采样率/每次读多少数据*录音时间=需要读多少次 data = stream.read(CHUNK) # 每次读chunk个数据 frames.append(data) # 将读出的数据保存到列表中 print("* done recording") # 结束录音标志 stream.stop_stream() # 停止输入流 stream.close() # 关闭输入流 p.terminate() # 终止pyaudio wf = 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("tiny") record(3) # 定义录音时间,单位/s result = model.transcribe("output.wav",language='Chinese',fp16 = True) s = result["text"] s1 = zhconv.convert(s, 'zh-cn') print(s1) 

8.可以实时录音并且语音转中文的代码编写(使用gpu运行)

import whisper import zhconv 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("* recording") # 开始录音标志 frames = [] # 定义frames为一个空列表 for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): # 计算要读多少次,每秒的采样率/每次读多少数据*录音时间=需要读多少次 data = stream.read(CHUNK) # 每次读chunk个数据 frames.append(data) # 将读出的数据保存到列表中 print("* done recording") # 结束录音标志 stream.stop_stream() # 停止输入流 stream.close() # 关闭输入流 p.terminate() # 终止pyaudio wf = 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("base") record(3) # 定义录音时间,单位/s audio = whisper.load_audio("output.wav") audio = whisper.pad_or_trim(audio) mel = whisper.log_mel_spectrogram(audio).to(model.device) _, probs = model.detect_language(mel) print(f"Detected language: {max(probs, key=probs.get)}") options = whisper.DecodingOptions(language='Chinese',fp16 = True) result = whisper.decode(model, mel, options) s1 = zhconv.convert(result.text, 'zh-cn') print(s1) 

9.展示实时翻译结果

whispercodetpu数据流baiduframerappetf代码编写百度网盘数据保存pytorchpythoncreateurlctrcpupycharmmediumcodingivahtml虚拟环境gpu实时翻译openaiaml
  • 本文作者:李琛
  • 本文链接: https://wapzz.net/post-2066.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
本站部分内容来源于网络转载,仅供学习交流使用。如涉及版权问题,请及时联系我们,我们将第一时间处理。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
2.3W+
5
0
1
WAP站长官方

Duck AI推多模式计算机交互数据收集器 DuckTrack:可收集鼠标、键盘、屏幕等数据

上一篇

生成式AI游戏开发平台Bitmagic公测,通过文本提示创建游戏

下一篇
  • 复制图片
按住ctrl可打开默认菜单