使用openai-whisper 语音转文字

前言:

最近由于ChatGPT 的大热,AI 应用领域再次进入大众的视线,今天介绍一款AI应用whisper 可以较为准确的将人声转换为文字(支持多国语言)

一、安装

安装有两种方式pip 和源码编译安装,这里介绍pip安装方式

  1. 安装python 3.9.9 和pyTouch 1.10.1 (安装步骤省略,官网下载安装即可)由于pip 的版本使用了指定的pyTouch 所以安装最新的python 版本会出现问题。

python3.9.9

  1. 安装ffmpeg,下方为各类OS 的安装方式

# on Ubuntu or Debian
sudo apt update && sudo apt install ffmpeg

# on Arch Linux
sudo pacman -S ffmpeg

# on MacOS using Homebrew (https://brew.sh/)
brew install ffmpeg

# on Windows using Chocolatey (https://chocolatey.org/)
choco install ffmpeg

# on Windows using Scoop (https://scoop.sh/)
scoop install ffmpeg
  1. 安装wisper 和rust

pip install -U openai-whisper
pip install setuptools-rust

二、使用

whisper 支持 cpu 和 gpu,默认完成后,只使用cpu加速

whisper.exe 屋顶.mp3 --language zh --model small

效果如何,当然是拿jay的歌来做测试,下图是结果;显然在语速慢的环境中效果还是不错的,换成双截棍...就不能看了...

(图:屋顶转换成歌词)

--model 表示AI使用的模型,共有5个模型,模型越大精确度也越高(当然对设备的性能要求也越高)

--language 表示语音的语种 这里 zh=Chinese

我们从截图看到,转译出来的文字有简体也有繁体,这主要是AI 的样本既有简体又有繁体,如果我们希望输出结果是简体,则加上 --initial_prompt "以下是普通话的句子。"

whisper 屋顶.mp3 --language zh --model small --initial_prompt "以下是普通话的句子。"

重新执行一次,结果如图:

使用CUDA

执行如下指令,安装带cuda 的pytorch

pip uninstall torch
pip cache purge
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116

--device cuda 使用device参数 指定 cuda

whisper 屋顶.mp3 --language zh --model small --device cuda --initial_prompt "以下是普通话的句子。"

其他未尽事宜可以通过 --help 来了解

whisper --help

注意:第一次调用时,会下载模型,国内直接下载速度会很慢!

参考文献

whisper blog

whisper github

### 使用 `whisper-large-v3` 模型实现语音到文本换 为了使用 `whisper-large-v3` 模型进行语音文本的任务,可以采用 Python 和 Hugging Face 的 Transformers 库来加载并应用该模型。下面提供了一个详细的指南以及一段代码示例。 #### 安装必要的库 首先需要安装一些依赖项,包括 `transformers` 和 `torch`: ```bash pip install transformers torch ``` #### 加载预训练模型和分词器 接着通过 Hugging Face 提供的 API 来获取已经训练好的 `whisper-large-v3` 模型及其对应的分词器: ```python from transformers import WhisperProcessor, WhisperForConditionalGeneration processor = WhisperProcessor.from_pretrained("openai/whisper-large-v3") model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-large-v3").to("cuda") # 如果有 GPU 支持的话 ``` #### 音频文件处理与特征提取 对于输入音频数据,则需将其化为适合喂给模型的形式。这里假设有一个名为 `audio.wav` 的 WAV 文件作为待处理对象: ```python import librosa def load_audio(file_path): audio_input, sample_rate = librosa.load(file_path, sr=16000) return processor(audio_input, sampling_rate=sample_rate, return_tensors="pt") input_features = load_audio("./example.wav").input_values.to("cuda") ``` #### 执行推理过程获得结果 最后一步就是调用模型来进行预测工作,并解码得到最终的文字输出: ```python predicted_ids = model.generate(input_features) transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)[0] print(f"Transcribed text:\n{transcription}") ``` 上述方法适用于大多数情况下的语音文字需求[^1]。然而如果希望在资源受限设备上部署此功能,可能还需要考虑更高效的解决方案如 whisper.cpp 这样的 C++ 实现版本[^2]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值