当前位置: 代码网 > it编程>前端脚本>Python > 使用openai-whisper实现语音转文字

使用openai-whisper实现语音转文字

2024年08月04日 Python 我要评论
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。在官网上选择windows版本在GitHub上可以选择最新版本,选择;如果python程序出现“FileNotFoundError: [WinError 2] 系统找不到指定的文件。”错误时,可能是ffmpeg版本的问题。将解压到D盘,名字修改为ffmpeg, 将目录添加到环境变量中。,出现下面的信息表示安装成功。

使用openai-whisper实现语音转文字

1 安装依赖

1.1 windows下安装ffmpeg

ffmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用lgpl或gpl许可证。它提供了录制、转换以及流化音视频的完整解决方案。

# ffmpeg官网
https://ffmpeg.org/

# ffmpeg下载地址
https://ffmpeg.org/download.html

# 点击下载后会进入github,地址如下
https://github.com/btbn/ffmpeg-builds/releases

在官网上选择windows版本

在这里插入图片描述

推荐使用ffmpeg-n5.1.4-win64-gpl-5.1.zipffmpeg-n6.0.1-win64-gpl-6.0.zip这两个版本,因为ffmpeg 5.1.4 和 ffmpeg 6.0.1版本是最新稳定版。

#  auto-build 2023-11-30的地址
https://github.com/btbn/ffmpeg-builds/releases/tag/autobuild-2023-11-30-12-55

# ffmpeg-n5.1.4-win64-gpl-5.1.zip的地址
https://github.com/btbn/ffmpeg-builds/releases/download/autobuild-2023-11-30-12-55/ffmpeg-n5.1.4-win64-gpl-5.1.zip

# ffmpeg-n6.0.1-win64-gpl-6.0.zip的地址
https://github.com/btbn/ffmpeg-builds/releases/download/autobuild-2023-11-30-12-55/ffmpeg-n6.0.1-win64-gpl-6.0.zip

在github上可以选择最新版本,选择ffmpeg-master-latest-win64-gpl.zip

⚠️​ 如果python程序出现“filenotfounderror: [winerror 2] 系统找不到指定的文件。”错误时,可能是ffmpeg版本的问题。

在这里插入图片描述

ffmpeg-master-latest-win64-gpl.zip 解压到d盘,名字修改为ffmpeg, 将目录 d:\ffmpeg\bin 添加到环境变量中。

在这里插入图片描述

在dos页面查看版本号中输入:ffmpeg.exe -version,出现下面的信息表示安装成功。

在这里插入图片描述

1.2 安装openai-whispe

# whispe地址
https://github.com/openai/whisper

# 安装openai-whisper
pip install openai-whisper -i https://pypi.tuna.tsinghua.edu.cn/simple

# 安装pydub切割音频,防止音频太长
pip install pydub -i https://pypi.tuna.tsinghua.edu.cn/simple

下载语音,可以直接在浏览器中打开,再下载

wget -c https://paddlespeech.bj.bcebos.com/paddleaudio/zh.wav
wget -c https://paddlespeech.bj.bcebos.com/paddleaudio/en.wav

2 使用openai-whispe

2.1 工程目录

在这里插入图片描述

2.2 main.py

import whisper
model = whisper.load_model(name="tiny", download_root="./model")

# load audio and pad/trim it to fit 30 seconds
audio = whisper.load_audio(".//data//zh.wav")
audio = whisper.pad_or_trim(audio)

# make log-mel spectrogram and move to the same device as the model
mel = whisper.log_mel_spectrogram(audio).to(model.device)

# detect the spoken language
_, probs = model.detect_language(mel)
print(f"detected language: {max(probs, key=probs.get)}")

# decode the audio
options = whisper.decodingoptions()
result = whisper.decode(model, mel, options)

# print the recognized text
print(result.text)

输出结果:

detected language: zh
我認為跑步最重要的就是給我帶來了身體健康

2.3 简单使用

openai-whispe中的transcribe()方法,可以接收文件路径,也接收numpy的np.ndarray类型(音频流),可以使用librosa包对音频进行处理,librosa包是音频处理的库,主要功能有获取音频流(np.ndarray)、采样率、文件时常、波形图、频谱图等。

# librosa的简单使用,audio_np音频流(np.ndarray),freq音频采样率
audio_np, freq = librosa.load(audio_path)

openai-whispe中的transcribe()方法

import whisper

model = whisper.load_model(name="tiny", download_root="./model")
result = model.transcribe(".//data//zh.wav")
print(result["text"])
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com