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

相关文章

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份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX