OpenAI 开源的语音技术 Whisper 真棒!!!

2024-06-19 01:52

本文主要是介绍OpenAI 开源的语音技术 Whisper 真棒!!!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学。

针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。

合集:

《大模型面试宝典》(2024版) 正式发布!
《AIGC 面试宝典》已圈粉无数!


在处理音频识别和翻译时,我们经常面临多样化的音频数据和处理多种语言的难题。传统的音频处理方法通常步骤繁杂,各个处理阶段的结果往往需要手动衔接和微调。

一个高效的自动语音识别(ASR)系统对于全球通讯和语言支持工具是极其关键的,尤其是在智能语音助手和电话语音翻译等领域。

然而,开发一个适用于广泛任务的模型,比如能够处理多种语言、进行语音翻译和语言识别,这仍是一个挑战。本篇文章Whisper,可能就是针对这些问题的新答案。

什么是 Whisper?

Whisper 是一个多功能的语音识别模型,通过从网络上收集了 68 万小时的多语言(98 种语言)和多任务(multitask)监督数据对 Whisper 进行了训练,能够执行包括多种语言的语音识别、语音翻译以及语言辨识等多项任务。

该项目的核心之处在于使用了一种基于Transformer架构的序列到序列模型来训练处理不同的语音任务,并通过解码器来预测代表各种任务的特定标记(token),这一过程有望取代传统音频处理中的多个步骤,并实现对多任务的同时训练。

Whisper 提供5种模型以及英文单一版本来实现速度和精度的权衡,适应不同的需求。

开源项目地址:https://github.com/openai/whisper

如何使用

在 Python 3.9.9 和 PyTorch 1.10.1 环境下进行操作,同时需要依赖openAI’s tiktoken 包来进行快速的标记(tokenize)处理。安装方式如下命令:

pip install -U openai-whisper

更新到最新版本的命令如下:

pip install --upgrade --no-deps --force-reinstall git+https://github.com/openai/whisper.git

需要注意的是,这个项目还要求在系统上安装了命令行工具 ffmpeg,如果在安装过程中出现错误,可能需要安装 Rust 开发环境。安装好以后,以下是一个最简单的使用示例:

import whisper
model = whisper.load_model("base")
result = model.transcribe("audio.mp3")
print(result["text"])

在实际应用中我们可以把它封装成API的接口通过HTTP的方式来调用,我们可以使用python的高性能的框架Fast API。

我们可以通过FastAPI的UPload File来实现上传音频文件

# FastAPI使用async/await提升并发性能
async def api_recognition(audio: UploadFile = File(..., description="audio file")):content = await audio.read()

模型默认使用的wav的音频格式,这个时候就需要使用到FFmpeg来对音频进行转换。可以使用到pydub库中的AudioSegment方法对音频进行转换,也是通过调用FFmpeg来进行实现的,感兴趣的同学可以自行了解。

sound = AudioSegment.from_file(io.BytesIO(content))
# 将音频导出为wav格式,参数为FFmpeg对应的参数
# -ar rate        set audio sampling rate (in Hz) 
# -ac channels    set number of audio channels
wav  = sound.export(format="wav",parameters=["-ac","1","-ar","16000"]) 

该模型支持的输入格式为:str, np.ndarray, torch.Tensor三种

audio: Union[str, np.ndarray, torch.Tensor]

这时我们需要将刚刚的音频字节流转换为np.ndarray格式,这里可以使用soundfile的read方法

我们可以使用curl来进行测试:

# curl -X POST -F "audio=@test.wav" http://127.0.0.1:8000/recognition
{"results":"支付宝到账 100万元","code":0}

完整示例代码

import whisper
from pydub import AudioSegment
import soundfile
import iomodel = whisper.load_model("base",download_root="./.cache/whisper")import uvicorn
from fastapi import FastAPI, File, UploadFile
app = FastAPI(title="whisper")@app.post("/recognition")
async def api_recognition(audio: UploadFile = File(..., description="audio file")):content = await audio.read()sound = AudioSegment.from_file(io.BytesIO(content))wav  = sound.export(format="wav",parameters=["-ac","1","-ar","16000"])speech, _ = soundfile.read(wav,dtype="float32")rec_result = model.transcribe(speech)ret = {"results": rec_result['text'], "code": 0}return retif __name__ == '__main__':uvicorn.run("example-whisper:app",host="0.0.0.0",workers=1)

总结

Whisper是OpenAI 发布的语音处理系统,在github拥有众多的追随者,此项目基于大规模弱监督的方法进行训练,为研究人员提供重要的研究工具,同时也为行业开发者提供了实用的开发工具,可以广泛应用于各种语音识别需求。

Whisper在处理不同语言方面展现出了卓越的性能,这与当前多样化和多任务处理的趋势相契合。该项目目前正处于积极开发阶段,并持续吸纳社区的意见和贡献,这使得它非常值得我们关注和尝试。

这篇关于OpenAI 开源的语音技术 Whisper 真棒!!!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1073674

相关文章

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

讯飞webapi语音识别接口调用示例代码(python)

《讯飞webapi语音识别接口调用示例代码(python)》:本文主要介绍如何使用Python3调用讯飞WebAPI语音识别接口,重点解决了在处理语音识别结果时判断是否为最后一帧的问题,通过运行代... 目录前言一、环境二、引入库三、代码实例四、运行结果五、总结前言基于python3 讯飞webAPI语音

无需邀请码!Manus复刻开源版OpenManus下载安装与体验

《无需邀请码!Manus复刻开源版OpenManus下载安装与体验》Manus的完美复刻开源版OpenManus安装与体验,无需邀请码,手把手教你如何在本地安装与配置Manus的开源版OpenManu... Manus是什么?Manus 是 Monica 团队推出的全球首款通用型 AI Agent。Man

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业