您当前的位置: 首页 >  编程语言

OpenAI 的语音识别 Whisper 很神奇,于是我在 Google Colab 上试了一下

介绍

2022/09/22,OpenAI 公布了语音识别模型 Whisper。 Whisper 是一个具有人类级别的鲁棒性和语音识别准确性的神经网络,它是开源的,所以任何人都可以使用它![参考]官方网站:纸:GitHub:

耳语概述

Whisper 是一种自动语音识别模型,在 680,000 小时的大型数据集上进行训练,提高了其对口音、背景噪声和行话的鲁棒性。该架构被实现为编码器/解码器转换器,其中每 30 秒分割的输入音频被转换为 Log-mel 频谱图并传递给编码器。解码器经过训练以预测相应的文本,从而实现语言识别、短语级时间戳、多语言语音转录和语音翻译成英语等任务。

更多详情请参考官网及论文!您可以看到带有图像的架构解释以及带有 k-pop 音乐的 Whisper 演示! (能准确地听到音乐并将其翻译成英文真是太神奇了……)

当你看到这样的解释时,它会让你想实际使用你的双手,不是吗?让我们一起在 Google Colab 上试用 Whisper!

设置 Google Colab

创建新笔记本单击下面的 URL 以访问 Google Colab。

从顶部的选项卡中,选择运行时 > 更改运行时类型 > 带硬件加速的 GPU

3.运行代码安装whisper

! pip install git+https://github.com/openai/whisper.git

4.模型设置这是可用的模型。

尺寸 参数 纯英文模型 多语言模型 所需显存 相对速度 微小的 39M 廷恩 微小的 ~1GB ~32 倍 根据 74M base.en 根据 ~1GB ~16 倍 小的 244M 小.em 小的 ~2GB ~6x 中等的 769M 中.en 中等的 ~5GB ~2x 大的 1550M 不适用 大的 ~10GB ~1x

这一次,让我们尝试基本模型。

import whisper
model = whisper.load_model("base")

导入 Whisper 以加载基础模型。完成以下进度条后,继续下一步。

The cache for model files in Transformers v4.22.0 has been updated. Migrating your old cache. This is a one-time only operation. You can interrupt this and resume the migration later on by calling `transformers.utils.move_cache()`.
Moving 0 files to the new cache system
0/0 [00:00<?, ?it/s]
100%|███████████████████████████████████████| 139M/139M [00:03<00:00, 46.9MiB/s]

接下来,执行以下代码来检查模型使用的设备。

model.device

然后您可以确认您在 google colab 上使用 cuda,如下所示

device(type='cuda', index=0)
用于语音识别的语音数据

这是这次使用的音频数据。

3A网络 日常对话可以拉得更近!日语会话中高级语音

请从这里下载音频数据。完成后,将光标移动到 google colab 的 content 文件夹,点击右侧出现的 :(三个点)上传音频数据。这次我把数据001.mp3上传到了content文件夹。

接下来,执行以下代码。

from IPython.display import Audio
Audio("/content/001.mp3")

然后,您可以播放音频数据,如下图所示。

确认语音数据可以在google colab上使用后,我们就实际进行语音识别了!

使用耳语进行语音识别

对之前的 001.mp3 数据执行以下代码。

# load audio and pad/trim it to fit 30 seconds
audio = whisper.load_audio("/content/001.mp3")
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)

然后,转录在大约 15 秒内完成。结果如下所示。由于 Whisper 对长达 30 秒的剪辑执行语音识别,因此读取 001.mp3 中 56 秒数据中的 30 秒。

Detected language: ja
こんにちは。シェアハウスコルサってここですか?もしかして、4人目の10人の人?はい、吉田ゆりです。よろしくお願いします。思ったよりいいところですね、ここ。そうでしょう。僕、ちょうです。やっときた。ゆり、今何時だと思ってる?ごめんごめん、スティーブ。ついにどねしちゃって。

并排检查实际文本。

你好。共享之家 Corsa 在哪里?会不会是第四个“居民”?是的,我是吉田由里。谢谢你。这个地方比你想象的要好。你不。我是曹它终于来了。尤里,你觉得现在几点?对不起,史蒂夫。我不小心“睡了两次”。

精度是惊人的。语音识别几乎是完美的。此外,可以自动区分日语和语言。

我想完成这一次!如果您阅读了这篇文章,请自己尝试一下!

原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308626748.html