首页 > 其他分享 >OpenAI模型whisper 音频转文本

OpenAI模型whisper 音频转文本

时间:2024-11-16 18:44:56浏览次数:3  
标签:模型 whisper 音频 OpenAI Whisper text self

最近有一个音频转文本的需求,了解到了OpenAI的whisper模型可以实现。
Whisper 是 OpenAI 提供的一个通用语音识别模型,支持多语言的音频转文本功能,并具有较高的准确性。它的主要用途包括自动语音识别 (ASR)、语言翻译(将音频直接翻译成英文文本)等。Whisper 支持将长时间音频文件(如对话、采访、演讲)转录成文字,并且在多语言环境下表现良好。

Whisper 的核心功能

  1. 音频转文本:自动将音频内容转录为文本。
  2. 多语言支持:Whisper 支持包括中文、法语、西班牙语、阿拉伯语等多种语言。
  3. 自动语言检测:能够识别音频语言,无需提前指定。
  4. 翻译:将非英文音频直接翻译成英文文本。

Whisper 模型的安装和使用

1. 下载 Whisper
git clone https://github.com/openai/whisper.git 
cd whisper
python -m venv myvenv #创建虚拟环境
venv\Scripts\activate #激活虚拟环境
pip install -r requirements.txt #在该虚拟环境下安装依赖库
2. 安装 ffmpeg

自行参考Windows安装安装ffmpeg
如果ffmpeg没有安装成功,运行代码会报如下错误:

image

我一开始碰到这个问题以为是音频文件的路径错了

3. 使用 Whisper 进行音频转文本

Whisper 提供了简单的 API,可以很方便地加载模型并进行转录。以下是一个基本的代码示例:


import whisper
from pathlib import Path
import json


class TextSegment:
    def __init__(self, text, begin, end):
        self.text = text
        self.begin = begin
        self.end = end
    def to_dict(self):
        # 将对象转换为字典
        return {
            "text": self.text,
            "begin": self.begin,
            "end": self.end
        }
    def __repr__(self):
        return f'TextSegment(text="{self.text}", begin={self.begin}, end={self.end})'

# 加载模型(可以选择不同大小的模型,越大准确率越高,但速度较慢)
model = whisper.load_model("tiny")  # 可选 "tiny", "base", "small", "medium", "large"

# 转写音频文件

path = Path("path/A.mp3")
result = model.transcribe(str(path))  # 替换为你的音频文件路径
print(result)
TextSegmentList = []

for item in result['segments']:

    TextSegmentList.append(TextSegment(item["text"], item["start"], item["end"])) 
    print(f"{item['text']}-----{item['start']}----{item['end']}")

json_string = json.dumps([segment.to_dict() for segment in TextSegmentList], indent=4)
print(json_string)
with open(path.stem+'.txt', 'w') as file:
    file.write(json_string) 

模型返回的数据结构如下所示:

image

数据结构有文本,以及对应的结束和开始的时间,有了这些数据无论是生成视频字幕还是音频和文本同步定位都是很方便的

4. 模型选择

Whisper 提供多种大小的模型,分别为 tinybasesmallmedium 和 large。模型越大,识别的准确性越高,但计算资源需求也会增加。可以根据需要选择合适的模型。

5. Whisper 的源码结构

Whisper 的代码结构清晰,主要包含以下核心部分:

  • whisper/model.py:定义模型结构和加载逻辑。
  • whisper/transcribe.py:处理音频文件转录的逻辑。
  • whisper/tokenizer.py:将音频编码成模型可以理解的 token,并将转录后的 token 转换为文本。
  • whisper/audio.py:负责音频文件的读取和预处理。

6. 应用场景

Whisper 适用于多种音频转录场景,如会议记录、字幕生成、采访转录、实时语音识别等。其多语言支持让它可以应对多语言环境的音频内容。

7. 性能优化建议

Whisper 模型对计算资源要求较高,建议在 GPU 环境下运行,并根据需求选择较小的模型(如 tiny 或 base),试过large模型电脑直接卡死。音频质量越高,转录的效果越好,噪声较大的音频会影响识别效果。

标签:模型,whisper,音频,OpenAI,Whisper,text,self
From: https://blog.csdn.net/weixin_49784554/article/details/143758708

相关文章

  • electron视频音频处理简单说明
    属于一个总结,一般我们都是使用navigator.mediaDevices.getUserMedia+desktopCapturer集成,但是getUserMedia对于音频的捕捉是有一些问题的(audio为true会有bug)基于sessionsetDisplayMediaRequestHandler推荐基于此方法,可以灵活的实现音视频的捕捉处理,win.webContents.ses......
  • Android 音频采集 - AudioRecord
    一、概述AudioRecord是Android平台比较重要的类,也是Java接口中比较偏底层(平台)的接口,可以通过它从平台的音频输入硬件来获取原始音频PCM数据。它的工作原理是要需要通过应用侧轮询调用read接口来驱动,每调用一次,系统就会从硬件采集到的数据填充一次,至于传递数据的......
  • Android15音频进阶之input调节CarAudioService音量过程(九十四)
    简介:CSDN博客专家、《Android系统多媒体进阶实战》一书作者新书发布:《Android系统多媒体进阶实战》......
  • Apple Logic Pro 11.1 - 专业音乐制作 (音频编辑)
    AppleLogicPro11.1-专业音乐制作(音频编辑)LogicPro配备全新AI功能,引领音乐创作再上新阶请访问原文链接:https://sysin.org/blog/apple-logic-pro/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgLogicPro配备全新AI功能,引领音乐创作再上新阶伴奏乐手......
  • OpenAI模型whisper 音频转文本
    最近有一个音频转文本的需求,了解到了OpenAI的whisper模型可以实现。Whisper是OpenAI提供的一个通用语音识别模型,支持多语言的音频转文本功能,并具有较高的准确性。它的主要用途包括自动语音识别(ASR)、语言翻译(将音频直接翻译成英文文本)等。Whisper支持将长时间音频文件(如对......
  • 搭建fast-whisper 环境时报错 Unable to load any of {libcudnn_ops.so.9.1.0, libcud
    fast-whisper官网地址:https://github.com/SYSTRAN/faster-whisper搭建环境时,按照官方的创建环境要求执行的使用condacreate-nfast_whisperpython=3.9创建虚拟环境执行pipinstallfaster-whisper安装库pipinstallnvidia-cublas-cu12nvidia-cudnn-cu12==8.*降低nump......
  • OpenAI官方发布:利用ChatGPT提升写作的12条指南
    近日,OpenAI官方发布了学生如何利用ChatGPT提升写作的12条指南,值得深入研究学习。在如今AIGC应用爆发增长的时间点,如何充分利用生成式AI工具,如ChatGPT,有效切快速的提升写作和学习能力,成为每个学生、学者、甚至职场人必须掌握的技能之一。以下十二个操作技巧,将为您提供全新的......
  • 百度发布 AI 眼镜:全球首搭中文大模型,支持边走边问;OpenAI 联合创始人宣布回归,主抓重大
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编......
  • [AIGC]使用阿里云Paraformer语音识别录音识别 API 进行音频处理 —— 完整流程及代码
    文章目录一、前提准备1.阿里云账号2.开通录音识别服务3.获取APIKey和AccessToken二、阿里云录音识别API的主要功能介绍三、完整代码流程1.导入依赖库2.设置环境变量3.生成Token4.上传文件并发起识别请求4.1请求4.2请将'{api-key}'替换为你的apikey,'{ta......
  • 手把手教你学simulink(13.5)--Simulink 信号处理场景:音频信号降噪处理
    目录项目实例:音频信号降噪处理项目背景步骤模型示意图结果分析MATLAB代码补充总结使用Simulink进行音频信号的降噪处理。这个项目将展示如何使用Simulink设计一个简单的音频降噪系统,通过滤波器去除音频信号中的背景噪声。项目实例:音频信号降噪处理项目背景......