使用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

BSW:MemMap模块配置及使用

(内存映射(MemMap)模块用于通过内存映射文件将代码和数据映射到特定的内存部分。MemMap生成特定的头文件,其中包含为MemorySection元素和编译器特定指令定义的内存映射预处理器。上面是比较官方的回答,说人话就是把数据和代码放在ECU内指定的地址。初级应用:软件中的bss,data,rodata,code,text,段需要在memory layout中划分具体的物理地址,对于多核系统,要将执行的数据和代码放在目标核的RAM和ROM。

Forever_Oct的博客 3675

2026年数据中心运行与管理专业人才培养基地建设方案(高职、数据中心运行与管理新专业、人才培养、专业代码:510310)

摘要: 为响应国家“东数西算”战略和数字经济需求,我校拟联合行业领军企业建设数据中心运行与管理人才培养基地。项目基于国家政策引导和产业快速发展背景,针对行业10万人才缺口,对标教育部新设专业标准(510310),分三阶段实施五年规划:专业奠基(2026-2028)、内涵深化(2028-2029)、辐射引领(2030-2031)。建设内容涵盖校企协同岗位能力分析、模块化课程开发(如网络管理、自动化运维等)、实训基地搭建及“课证融通”培养模式,重点培养基础设施、网络服务、运维托管三类岗位技能人才,目标建成区域性

啊碧根果的博客 1685

通达信强龙趋势幅图指标 - 精准捕捉趋势,把握强势行情,多角度分析个股,强弱一目了然

STICKLINE(趋势>0 AND SJTJ,4.8,5.8,1.5,0),COLORYELLOW;STICKLINE(资金>0 AND SJTJ,1.2,2.2,1.5,0),COLOR0080FF;STICKLINE(异动>0 AND SJTJ,0,1,1.5,0),COLORFF0080;STICKLINE(异动=0 AND SJTJ,0,1,1.5,1),COLORGRAY;

Q1809330692的博客 5629

【全部更新】2025金地杯E题山西省大学生数学建模思路代码文章教学:高速铁路牵引供电系统能耗优化

问题四将列车的运行速度与发车时间同时作为优化变量,建立联合优化模型,目标是在考虑电价机制和调度均衡性的前提下,使牵引供电系统一天内的总电费支出最小。问题三在考虑分时电价机制的基础上,基于遗传算法优化列车速度组合,使牵引供电系统一天内的总电费支出最小。然而,在实际运营中,不同时段的电价差异显著,合理安排列车的运行时间与运行速度,可有效降低系统的总电费支出。本研究聚焦于高速铁路牵引供电系统的能耗与电费优化问题,针对列车运行速度、发车时间与分时电价的综合影响,提出一系列数学模型,以实现系统能耗与电费的最小化。

xb459149247的博客 5289

【回眸】Tessy集成测试软件使用指南(一)新手使用篇

这个专栏的文章前4篇都在记录如何使用Tessy进行单元测试,集成测试需要有一定单元测试基础,且做集成测试之前,需要做好单元测试,否则将会大幅增加软件单元代码纠错的代价。集成测试所花费的时间通常远远超过单元测试。如果直接从单元测试到系统测试,结果往往是不理想的。集成测试可以检测由于单元相互交互而导致的错误,通常由一组专业的测试人员执行。

啤酒鸭的物联网开发记录博客 5279

【人工智能】《Deep Dive into LLMs like ChatGPT 》—— Andrej Karpathy 第三阶段:强化学习(Reinforcement Learning, RL)

摘要:强化学习(RL)阶段通过让模型自主生成并验证答案,突破SFT阶段的模仿局限,使其在数学、代码等领域形成独特的推理路径。RL流程包括批量生成解答、自动批改筛选正确路径,并采用PPO/GRPO算法优化模型。模型会自发涌现自我检查、回滚等策略,显著提升正确率(如AIME竞赛准确率从15%升至56%)。与SFT模型相比,RL模型具备主动链式思维、验算能力,响应时间更长但效果更优,形成真正的“思考模型”。三阶段对比显示,RL通过可验证题的对错奖励机制,赋予模型超越人类范式的推理能力。

奶爸的编程之路,也就一周冷个三天 149

Android AMS——AMS初始化(二)

Android AMS 也是一个系统服务,属于系统服务中的引导服务,在 startBootstrapServices() 方法中启动。这里我们就来看一下 ActivityManagerService 的启动流程。

小旭的专栏 777

华为OD机试2025C卷 - 精准核酸检测 (C++ & Python & JAVA & JS & GO)

华为OD机试2025C卷 精准核酸检测,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 1707

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

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

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: 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、付费专栏及课程。

余额充值