使用OpenAI Whipser开源模型实现长音频转录并结合GPT模型做文本翻译

有什么开源的python汉语语音转文字项目? 推荐了十款Python开源的汉语语音转文字项目. 阅读详情
AI摘要

文章介绍了针对长音频转录的优化方案,包括根据静音部分分割音频以改善转录效果,并结合GPT进行文本翻译。此外,提到了商业化解决方案Gglot和Shipyard,以及使用Python库PyDub进行音频处理的实践代码示例。

一、前言

在前面一篇文章《Whisper与ChatGPT联手,轻松实现音频转录文本总结》给大家介绍过如何使用OpenAI的在线API接口和开源的离线Whisper模型做语音转录文本,以及对于转录后的文本内容基于GPT模型进行摘要总结。 主要应用于对音频或视频做文本转录、视频或音频摘要总结、以及视频字幕翻译等场景。 甚至对于实时视频会议转录也是支持的。

实际上当时留了个悬念,本来也有计划再写一篇后续来接着第一篇深入实践,对于长语音分割方面的问题,有位粉丝朋友当天就提出了自己的一些建议,希望对原来的案例进行优化,那今天就接着说说一些优化思路吧。 

看得出来,这位朋友确实对于语音这块有过实践,认真思考过,上一篇我们采取的是根据时间间隔来对语音进行分片切割的方案,这个方案其实存在一定的缺陷。我们在将长音频分片进行转录的过程里,是完全按照精确的时间去切割音频文件的。但是实际上音频的断句其实并不在那一毫秒。所以转录的时候,效果也不一定好,特别是在录音的开头和结尾部分,很有可能不是一个完整的句子,也容易出现一些错漏的情况。

二、解决思路

针对长音频文件提供两种分片切割方案,第一种在前面一篇文章中已经介绍,今天重点来介绍第二种方案,顺便结合GPT模型对转录的文本做翻译。

  • 将音频文件按固定时间间隔分割成块,并使用Whisper API进行语音识别转录

  • 将音频文件根据静音部分分割成块,并使用Whisper API进行语音识别转录

除了以上两种针对开源Whisper模型自己实现的方案外,也有一些比较成熟的商用解决方案,大家可以根据自己的需求进行选择,这里介绍两款产品,可以非常方便的支持可视化流程配置的方式实现LLMs的集成应用。

  • Gglot(https://app.gglot.com/register?ref=DYQjn57U)

Gglot 一款非常简单易用的音频和视频转录解决方案,只需要选择音频或视频文件然后指定要翻译的语言即可,也支持Youtube视频直接转录,不过源视频或者音频的质量太差可能效果不好太好。

  • Shipyard(https://www.shipyardapp.com/)

Shipyard 设计为一流的工作流程自动化平台,提供了许多开箱即用的功能,可以帮助数据团队比以往更快地投入生产。团队可以在不到 5 分钟的时间内启动、监控、扩展和共享业务解决方案,而无需接触基础设施。用Shipyard只需要不到5分钟即可完成Youtube视频转录翻译的功能。

三、开发实践

接下来,开始对于第二种解决方案音频文件根据静音部分分割成块的方案进行具体的编码实践。

由于OpenAI 限制了 Whisper 一次只能转录25MB大小的文件,因此我们需要将大的播客文件分割成小的片段,转录完后再将它们拼接起来。我们可以使用OpenAI在官方文档中提供的PyDub库来分割文件。

3.1、安装依赖

  • 首先确保安装了PyDub库。
%pip install pydub
  • 使用开源模型,需安装 openai-whisper 的相关的依赖包。
%pip install openai-whisper 
%pip install setuptools-rust
  • 如需要翻译则需要安装 `openai` 的相关的依赖包。
!pip install openai --upgrade -q

3.2、音频切割(固定间隔)

我们先来回顾一下采用固定时间间隔进行拼音切割,然后使用Whisper进行转录的一个实际效果。

import os
import whisper
from pydub import AudioSegment
from pydub.silence import split_on_silence

model = whisper.load_model("large")

# 使用Whisper本地进行音频转录
def transcribe_audio_whisper(path):
    result = model.transcribe(path)
    text = result['text']
    return text

# 将音频文件按固定时间间隔分割成块,并使用Whisper API进行语音识别的函数
def get_large_audio_transcription_fixed_interval_whisper(path, minutes=5):
    sound = AudioSegment.from_file(path)
    chunk_length_ms = int(1000 * 60 * minutes)
    chunks = [sound[i:i + chunk_length_ms] for i in range(0, len(sound), chunk_length_ms)]

    folder_name = "audio-fixed-chunks"
    if not os.path.isdir(folder_name):
        os.mkdir(folder_name)

    whole_text = ""
    for i, audio_chunk in enumerate(chunks, start=1):
        chunk_filename = os.path.join(folder_name, f"chunk{i}.mp3")
        audio_chunk.export(chunk_filename, format="mp3")

        try:
            text = transcribe_audio_whisper(chunk_filename)
        except Exception as e:
            print(
OpenAI 开源语音识别模型 Whisper 初体验 Whisper 是一个自动语音识别(ASR,Automatic Speech Recognition)系统,OpenAI 通过从网络上收集了 68 万小时的多语言(98 种语言)和多任务(multitask)监督数据对 Whisper 进行了训练。OpenAI 认为使用这样一个庞大而多样的数据集,可以提高对口音、背景噪音和技术术语的识别能力。除了可以用于语音识别,Whisper 还能实现多种语言的转录,以及将这些语言翻译成英语。 阅读详情

相关推荐

ubuntu16.04安装语音识别whisper及whisper-ctranslate2工具(填坑篇)

系统ubuntu16.04安装whisper-ctranslate2全过程

yangyi139926的博客 2874

实战whisper语音识别第一天,部署服务器,可远程访问,实时语音转文字(全部代码和详细部署步骤)

Whisper是OpenAI于2022年发布的一个开源深度学习模型,专门用于语音识别任务。它能够将音频转换成文字,支持多种语言的识别,包括但不限于英语、中文、西班牙语等。Whisper模型的特点是它在多种不同的音频条件下(如不同的背景噪声水平、说话者的口音、语速等)都能实现高准确率的语音识别,这得益于它在训练过程中使用的大量多样化的音频数据。

qq_34717531的博客 7316

C++版Cesium实战:从OpenGL到3DTiles的全流程开发指南

本文提供了一份C++版Cesium全流程开发指南,详细阐述了如何利用OpenGL和Qt从零构建高性能、可离线部署的三维GIS应用。内容涵盖开发环境搭建、OpenGL渲染引擎初始化、Cesium核心坐标系与场景管理移植,并重点解析了3DTiles数据的解析、异步加载与渲染优化等硬核实战技术,旨在帮助开发者实现与现有C++工业软件的深度集成。

weixin_28077113的博客 164

上海市大数据中心笔试模拟试卷

为帮助考生熟悉上海市大数据中心笔试的题型、考点及答题逻辑,以下整理了一份的模拟试卷,涵盖大数据专业知识、行政职业能力测试(行测)、公共基础知识(含上海本地政策)三大核心模块,并附详细答案解析。

一叶之秋的博客 1815

深入理解HTTPS:从SSLHandshakeException到证书链验证的完整解析

本文深入解析了HTTPS握手过程中常见的SSLHandshakeException异常,特别是由证书链验证失败引发的CertPathValidatorException。文章从TLS握手流程、证书链验证的数学原理出发,详细剖析了Java中TrustManager的工作机制,并提供了针对证书链不完整、自签名证书等典型问题的系统化排查流程与实战解决方案。

weixin_29313423的博客 231

内存学习(3):DRAM的基础存储结构(存储层级、读写过程,刷新与暂存)

DRAM,全称为 Dynamic Random Access Memory ,中文名是“动态随机存取存储器”。所谓“动态”是和“静态”相对应的,芯片世界里还有一种 SRAM 静态随机存取存储器的存在。笼统地说,DRAM 的结构比 SRAM 更简单,面积占用更小,适合制作大容量的存储芯片;而 SRAM 结构复杂一些,一般使用六个晶体管,面积消耗大,但是读写速度快,而且因为 SRAM 只用到晶体管,所以在工艺上和逻辑芯片相兼容,我们可以在逻辑芯片上直接集成 SRAM。

呆呆象呆呆的博客 2万+

axi ps读写pl_PL读写DDR:Datamover能干什么

最近发现工程项目中一直在用AXI-DMA。这玩意儿搬数据倒是没问题,就是用axi-lite配置起来非常反人类。。。简单的办法其实是用datamover ip核。这个ip核能干嘛呢。准备写个文章解析一下。由于好多feature没用过,所以仅仅看文档可能理解有误,欢迎指出错误。首先扫个盲:MM2S指的是Memory map to stream. 读DDR. S2MM指的是steam to memory...

weixin_35908791的博客 1597

2024年12月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

他尝试编写了如下程序,请你完善划线处的代码,计算出在h点s分放学时,三个时针分别经过3点位置的次数,用一个元组表示各指针经过3点位置的次数 (时针次数,分针次数,秒针次数) ,并输出。所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。匿名函数,冒号之前表示的是这个函数的参数,冒号之后表示返回值,可以使用默认值,使用时需要将它赋值给一个变量,设置默认值不是必须,如无传入实参则使用默认值,如有传入实参则使用实参。

人生就是一个不断学习的过程 370

《民机适航入门指南:从法规学习到项目实践的全面解析》

适航(Airworthiness)是指航空器、其发动机、螺旋桨和其他部件在规定条件下,能够安全飞行并满足有关航空法规规定的条件。简而言之,适航代表了航空器在任何时候都能安全运营的状态。适航在民用航空领域尤为关键,因为飞机必须经过严格的适航认证才能投入商用。这些认证的目标是确保飞机能够在广泛的运行条件下保持飞行安全,从而保护乘客、机组和地面人员的生命财产安全。适航法规覆盖了飞机的整个生命周期,包括设计、制造、测试、运营、维护和报废。

qq_41854911的博客 992

把 ABAP Smart Form 输出变成可直接下载的 PDF 二进制:OTF 到 XSTRING 的一条龙实践

SAP Smart Forms 生成 PDF 的实用方案:通过 OTF 格式转换实现高效输出。Smart Forms 本身不直接生成 PDF,而是输出 OTF 格式数据,需通过 CONVERT_OTF 函数转换。本文提供两种实现路径:传统的 Spool 方式和更优的直接获取 OTF 方式,后者避免了 Spool 的维护负担。核心代码演示了如何通过设置 GETOTF 参数获取 OTF 数据,并转换为 PDF 二进制流,适用于前端下载、接口传输等场景。同时介绍了 SSF_OPEN/SSF_CLOSE 方法用于批

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 675

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: LlamaIndex:轻松构建索引查询本地文档的神器
下一篇: 什么是向量数据库?
技术狂潮AI
博客等级 码龄3年 1282粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术狂潮AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值