使用OpenAI的Whisper 模型进行语音识别

这篇具有很好参考价值的文章主要介绍了使用OpenAI的Whisper 模型进行语音识别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文:https://baijiahao.baidu.com/s?id=1756232395896695428&wfr=spider&for=pc

语音识别是人工智能中的一个领域,它允许计算机理解人类语音并将其转换为文本。 该技术用于 Alexa 和各种聊天机器人应用程序等设备。 而我们最常见的就是语音转录,语音转录可以语音转换为文字记录或字幕。

wav2vec2、Conformer 和 Hubert 等最先进模型的最新发展极大地推动了语音识别领域的发展。 这些模型采用无需人工标记数据即可从原始音频中学习的技术,从而使它们能够有效地使用未标记语音的大型数据集。 它们还被扩展为使用多达 1,000,000 小时的训练数据,远远超过学术监督数据集中使用的传统 1,000 小时,但是以监督方式跨多个数据集和领域预训练的模型已被发现表现出更好的鲁棒性和对持有数据集的泛化,所以执行语音识别等任务仍然需要微调,这限制了它们的全部潜力 。 为了解决这个问题OpenAI 开发了 Whisper,一种利用弱监督方法的模型。

本文将解释用于训练的数据集的种类以及模型的训练方法。

Whisper 模型介绍

使用数据集:

Whisper模型是在68万小时标记音频数据的数据集上训练的,其中包括11.7万小时96种不同语言的演讲和12.5万小时从”任意语言“到英语的翻译数据。该模型利用了互联网生成的文本,这些文本是由其他自动语音识别系统(ASR)生成而不是人类创建的。该数据集还包括一个在VoxLingua107上训练的语言检测器,这是从YouTube视频中提取的短语音片段的集合,并根据视频标题和描述的语言进行标记,并带有额外的步骤来去除误报。

模型:

主要采用的结构是编码器-解码器结构。

重采样:16000 Hz

特征提取方法:使用25毫秒的窗口和10毫秒的步幅计算80通道的log Mel谱图表示。

特征归一化:输入在全局内缩放到-1到1之间,并且在预训练数据集上具有近似为零的平均值。

编码器/解码器:该模型的编码器和解码器采用Transformers。

编码器的过程:

编码器首先使用一个包含两个卷积层(滤波器宽度为3)的词干处理输入表示,使用GELU激活函数。

第二个卷积层的步幅为 2。

然后将正弦位置嵌入添加到词干的输出中,然后应用编码器 Transformer 块。

Transformers使用预激活残差块,编码器的输出使用归一化层进行归一化。

模型框图:

timit_asr,大模型,自然语言,语音识别,人工智能,深度学习

解码的过程:

在解码器中,使用了学习位置嵌入和绑定输入输出标记表示。

编码器和解码器具有相同的宽度和数量的Transformers块。

训练

为了改进模型的缩放属性,它在不同的输入大小上进行了训练。

通过 FP16、动态损失缩放,并采用数据并行来训练模型。

使用AdamW和梯度范数裁剪,在对前 2048 次更新进行预热后,线性学习率衰减为零。

使用 256 个批大小,并训练模型进行 220次更新,这相当于对数据集进行两到三次前向传递。

由于模型只训练了几个轮次,过拟合不是一个重要问题,并且没有使用数据增强或正则化技术。这反而可以依靠大型数据集内的多样性来促进泛化和鲁棒性。

Whisper 在之前使用过的数据集上展示了良好的准确性,并且已经针对其他最先进的模型进行了测试。

优点:

  • Whisper 已经在真实数据以及其他模型上使用的数据以及弱监督下进行了训练。

  • 模型的准确性针对人类听众进行了测试并评估其性能。

  • 它能够检测清音区域并应用 NLP 技术在转录本中正确进行标点符号的输入。

  • 模型是可扩展的,允许从音频信号中提取转录本,而无需将视频分成块或批次,从而降低了漏音的风险。

  • 模型在各种数据集上取得了更高的准确率。

Whisper在不同数据集上的对比结果,相比wav2vec取得了目前最低的词错误率

timit_asr,大模型,自然语言,语音识别,人工智能,深度学习

模型没有在timit数据集上进行测试,所以为了检查它的单词错误率,我们将在这里演示如何使用Whisper来自行验证timit数据集,也就是说使用Whisper来搭建我们自己的语音识别应用。

使用Whisper 模型进行语音识别

TIMIT 阅读语音语料库是语音数据的集合,它专门用于声学语音研究以及自动语音识别系统的开发和评估。 它包括来自美国英语八种主要方言的 630 位演讲者的录音,每人朗读十个语音丰富的句子。 语料库包括时间对齐的拼字、语音和单词转录以及每个语音的 16 位、16kHz 语音波形文件。 该语料库由麻省理工学院 (MIT)、SRI International (SRI) 和德州仪器 (TI) 共同开发。 TIMIT 语料库转录已经过手工验证,并指定了测试和训练子集,以平衡语音和方言覆盖范围。

安装:

!pip install git+https://github.com/openai/whisper.git
!pip install jiwer
!pip install datasets==1.18.3

第一条命令将安装whisper模型所需的所有依赖项。jiwer是用来下载文字错误率包的datasets是hugface提供的数据集包,可以下载timit数据集。

导入库

import whisper
from pytube import YouTube
from glob import glob
import os
import pandas as pd
from tqdm.notebook import tqdm

加载timit数据集

from datasets import load_dataset, load_metric

timit = load_dataset("timit_asr")

计算不同模型尺寸下的Word错误率

考虑到过滤英语数据和非英语数据的需求,我们这里选择使用多语言模型,而不是专门为英语设计的模型。

但是TIMIT数据集是纯英文的,所以我们要应用相同的语言检测和识别过程。另外就是TIMIT数据集已经分割好训练和验证集,我们可以直接使用。

要使用Whisper,我们就要先了解不同模型的的参数,大小和速度。

timit_asr,大模型,自然语言,语音识别,人工智能,深度学习

加载模型

model = whisper.load_model('tiny')

tiny可以替换为上面提到的模型名称。

定义语言检测器的函数

def lan_detector(audio_file):
print('reading the audio file')
audio = whisper.load_audio(audio_file)
audio = whisper.pad_or_trim(audio)
mel = whisper.log_mel_spectrogram(audio).to(model.device)
_, probs = model.detect_language(mel)
if max(probs, key=probs.get) == 'en':
return True
return False

转换语音到文本的函数

def speech2text(audio_file):
text = model.transcribe(audio_file)
return text["text"]

在不同模型大小下运行上面的函数,timit训练和测试得到的单词错误率如下:

timit_asr,大模型,自然语言,语音识别,人工智能,深度学习

从u2b上转录语音

与其他语音识别模型相比,Whisper 不仅能识别语音,还能解读一个人语音中的标点语调,并插入适当的标点符号,我们下面使用u2b的视频进行测试。

这里就需要一个包pytube,它可以轻松的帮助我们下载和提取音频

def youtube_audio(link):
youtube_1 = YouTube(link)
videos = youtube_1.streams.filter(only_audio=True)

name = str(link.split('=')[-1])
out_file = videos[0].download(name)

link = name.split('=')[-1]
new_filename = link+".wav"
print(new_filename)
os.rename(out_file, new_filename)
print(name)
return new_filename,link

获得wav文件后,我们就可以应用上面的函数从中提取文本。

总结

本文的代码在这里

https://avoid.overfit.cn/post/acab33d88ef54228ad50b8a66324659f

还有许多操作可以用Whisper完成,你可以根据本文的代码自行尝试。文章来源地址https://www.toymoban.com/news/detail-778708.html

到了这里,关于使用OpenAI的Whisper 模型进行语音识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenAI-whisper语音识别模型

    Whisper是一个通用的语音识别模型。它是在不同音频的大型数据集上训练的,也是一个多任务模型,可以执行多语言语音识别、语音翻译和语言识别。 whisper有五种模型尺寸,提供速度和准确性的平衡,其中English-only模型提供了四种选择。下面是可用模型的名称、大致内存需求

    2024年02月09日
    浏览(37)
  • 基于OpenAI的Whisper构建的高效语音识别模型:faster-whisper

    faster-whisper是基于OpenAI的Whisper模型的高效实现,它利用CTranslate2,一个专为Transformer模型设计的快速推理引擎。这种实现不仅提高了语音识别的速度,还优化了内存使用效率。faster-whisper的核心优势在于其能够在保持原有模型准确度的同时,大幅提升处理速度,这使得它在处理

    2024年02月02日
    浏览(39)
  • OpenAI开源全新解码器和语音识别模型Whisper-v3

    在11月7日OpenAI的首届开发者大会上,除了推出一系列重磅产品之外,还开源了两款产品,全新解码器Consistency Decoder(一致性解码器)和最新语音识别模型Whisper v3。 据悉,Consistency Decoder可以替代Stable Diffusion VAE解码器。该解码器可以改善所有与Stable Diffusion 1.0+ VAE兼容的图像,

    2024年02月05日
    浏览(35)
  • OpenAI开源语音识别模型Whisper在Windows系统的安装详细过程

    Python的安装很简单,点击这里进行下载。 安装完成之后,输入python -V可以看到版本信息,说明已经安装成功了。 如果输入python -V命令没有看到上面的这样的信息,要么是安装失败,要么是安装好之后没有自动配置环境变量,如何配置环境变量可以从网上搜索。 Python的具体安

    2024年02月08日
    浏览(36)
  • 在 Python 中使用 OpenAI 的新 Whisper API 进行语音转文本

    您是否厌倦了手动转录数小时的录音?您想节省时间并提高工作效率吗?然后,您会很高兴听到 OpenAI 用于语音到文本转换的新 Whisper API!借助这项尖端的 AI 技术,您现在可以在 Python 程序中轻松地将音频文件转换为文本。让我们在下面探讨这是如何工作的! 创建一个新文件

    2024年02月09日
    浏览(29)
  • 【语音识别】OpenAI whisper

    目录 1. 简单介绍 2. 代码调用 Introducing Whisper https://openai.com/blog/whisper/ OpenAI 的开源自动语音识别神经网络 whisper 安装 Python 调用

    2024年02月13日
    浏览(32)
  • OpenAI 开源语音识别 Whisper

            Whisper是一个通用语音识别模型。它是在各种音频的大型数据集上训练的,也是一个多任务模型,可以执行多语言语音识别以及语音翻译和语言识别。                人工智能公司 OpenAI 拥有 GTP-3 语言模型,并为 GitHub Copilot 提供技术支持的 ,宣布开源了

    2024年02月09日
    浏览(50)
  • openai的whisper语音识别介绍

    openAI发布了chatgpt,光环一时无两。但是openAI不止有这一个项目,它的其他项目也非常值得我们去研究学习。 今天说说这个whisper项目 https://github.com/openai/whisper ta是关于语音识别的。它提出了一种通过大规模的弱监督来实现的语音识别的方法。弱监督是指使用不完全或不准确的

    2024年02月09日
    浏览(28)
  • 语音识别开源框架 openAI-whisper

    Whisper 是一种通用的语音识别模型。 它是OpenAI于2022年9月份开源的在各种音频的大型数据集上训练的语音识别模型,也是一个可以执行多语言语音识别、语音翻译和语言识别的多任务模型。 GitHub - yeyupiaoling/Whisper-Finetune: 微调Whisper语音识别模型和加速推理,支持Web部署和Andr

    2024年02月17日
    浏览(36)
  • OpenAI Whisper中文语音识别效果尝试和应用(一)

            近期,OpenAI发布了Whisper语音识别模型,声称其在英语语音识别方面已接近人类水平的鲁棒性和准确性。出于对自动语音识别的兴趣,本人对此进行了一些尝试,看看它对中文语音识别的效果。         本内容仅供对语音识别有兴趣或者仅仅希望应用的入门朋友

    2023年04月18日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包