当前位置: 首页 > article >正文

使用 AMD GPU 上的 Whisper 进行语音转文字

Speech-to-Text on an AMD GPU with Whisper — ROCm Blogs

2024年4月16日,作者:Clint Greene.

介绍

Whisper是由 OpenAI 开发的高级自动语音识别(ASR)系统。它采用了一个简单的编码器-解码器 Transformer 架构,其中输入的音频被分割成 30 秒的段落,然后被输入到编码器中。解码器可以通过特殊的标记进行提示,以指导模型执行诸如语言识别、转录和翻译等任务。
在这篇博客中,我们将向您展示如何在 AMD GPU 上使用 Hugging Face 和 OpenAI 的官方 Whisper 版本将语音转换为文本。

测试的 GPU 硬件: MI210 / MI250

前提条件: 确保已安装 ROCm 5.7+ 和 PyTorch 2.2.1+。

我们建议用户安装最新版本的 PyTorch 和 TorchAudio,因为我们不断发布优化解决方案和新功能。

入门指南

首先,让我们安装必要的库.

pip install datasets ipywidgets transformers numba openai-whisper -q

sudo apt update && sudo apt install ffmpeg

安装完必要的库之后,让我们下载一段美国宪法序言的示例音频文件,之后将用于转录。

wget https://www2.cs.uic.edu/~i101/SoundFiles/preamble.wav

现在,我们已经准备好使用Hugging Face Transformers和OpenAI的Whisper代码库将语音转换为文本。

Hugging Face Transformers

让我们导入必要的库.

import torch
from transformers import pipeline

然后,我们设置用于转录的设备和管道。在这里,我们将下载并使用OpenAI发布的Whisper medium模型的权重来进行英语转录。

device = "cuda:0" if torch.cuda.is_available() else "cpu"

pipe = pipeline(
  "automatic-speech-recognition",
  model="openai/whisper-medium.en",
  chunk_length_s=30,
  device=device,
)

为了将语音转换为文本,我们将音频文件的路径传递给管道:

transcription = pipe("preamble.wav")['text']
print(transcription)

输出:

We, the people of the United States, in order to form a more perfect union, establish justice, ensure domestic tranquility, provide for the common defense, promote the general welfare, and secure the blessings of liberty to ourselves and our posterity, to ordain and establish this Constitution for the United States of America.

这是美国宪法序言的正确转录。

OpenAI’s Whisper

同样地,我们也可以使用OpenAI的官方Whisper发布版来进行转录。首先,我们下载中等英文模型权重。然后,为了进行转录,我们再次将音频文件的路径传递给模型。

import whisper

model = whisper.load_model("medium.en")
transcription = model.transcribe("preamble.wav")['text']
print(transcription)

输出:

We, the people of the United States, in order to form a more perfect union, establish justice, ensure domestic tranquility, provide for the common defense, promote the general welfare, and secure the blessings of liberty to ourselves and our posterity, to ordain and establish this Constitution for the United States of America.

结论

我们已经演示了如何使用Hugging Face Transformers库中的Whisper模型以及OpenAI的官方代码发布来转录单个音频文件。如果你计划批量转录文件,我们推荐使用Hugging Face的实现,因为它支持批量解码。关于如何转录批量文件或如何使用Hugging Face数据集的更多示例,请参见官方教程:pipeline tutorial.


http://www.kler.cn/a/395402.html

相关文章:

  • 《鸿蒙生态:开发者的机遇与挑战》
  • SQL面试题——蚂蚁SQL面试题 连续3天减少碳排放量不低于100的用户
  • 嵌入式硬件实战基础篇(一)-STM32+DAC0832 可调信号发生器-产生方波-三角波-正弦波
  • 【数据结构】AVL树
  • golang使用etcd版本问题
  • LaTeX之四:如何兼容中文(上手中文简历和中文论文)、在win/mac上安装新字体。
  • Docker的基本概念、安装步骤以及一些简单的用法
  • kubernetes部署dashboard
  • Ceph client 写入osd 数据的两种方式librbd 和kernel rbd
  • vxe-vxe-colgroup后端返回数据 对数据进行处理 动态合并分组表头(v-if控制表格渲染(数据请求完成后渲染))
  • 动态规划技巧点
  • C# 教程总结概括
  • Flink中自定义Source和Sink的使用
  • LeetCode297.二叉树的序列化和反序列化
  • 计算机网络前三章计算题总结
  • C++基础:Pimpl设计模式的实现
  • 【Pikachu】目录遍历实战
  • 论文解析:计算能力资源的可信共享:利益驱动的异构网络服务提供机制
  • 群控系统服务端开发模式-应用开发-前端角色功能开发
  • 解决Oracle DECODE函数字符串截断问题的深度剖析20241113
  • Ubuntu相关指令
  • 数据结构Python版
  • sqoop import将Oracle数据加载至hive,数据量变少,只能导入一个mapper的数据量
  • 【GPTs】MJ Prompt Creator:轻松生成创意Midjourney提示词
  • 【Git从入门到精通】——Git分支介绍与GitHub相关知识总结
  • Spring Boot与工程认证:计算机课程管理的新纪元