音频转文本技术详解:API接口、实用示例与最佳实践

音频转文本技术详解:API接口、实用示例与最佳实践

目录

  1. 概述
  2. 接口类型与模型说明
  3. 支持的音频格式与文件大小限制
  4. 快速入门
  5. 音频转录(Transcription)
  6. 音频翻译(Translation)
  7. 支持的语言列表
  8. 时间戳功能
  9. 处理较长音频
  10. 上下文提示与转录优化
  11. 流式转录
  12. 静态音频文件流式转录
  13. 实时录音流式转录
  14. 提高转录可靠性的建议

概述

本文介绍通过 API 将音频内容转化为文本的方法,涵盖接口模型、参数说明、关键技术细节及实用代码示例。全部示例以 https://zzzzapi.com 作为演示 base URL,该域名仅用于演示,请根据实际项目替换为自有或合规的服务地址。

接口类型与模型说明

API 提供两类主要的语音转文本接口:

  • Transcriptions(转录):将音频转录成原始语言文本,或根据参数设置翻译成英文。
  • Translations(翻译):将多语言音频直接翻译并转录为英文文本。

历史上,这两个端点均基于开源 Whisper 模型(whisper-1)。目前,转录端点还支持更高质量的快照模型,参数支持有限:
- gpt-4o-mini-transcribe
- gpt-4o-transcribe

更新说明:部分新模型(如 GPT-4o 系列)支持参数与输出格式有限,仅支持 json 或纯文本输出。

支持的音频格式与文件大小限制

  • 文件大小限制:最大 25 MB
  • 支持的输入格式:mp3mp4mpegmpgam4awavwebm

快速入门

音频转录(Transcription)

以下 Python 示例演示如何将本地音频文件转录为文本:

文件名示例:transcribe_audio.py

from openai import OpenAIclient = OpenAI()
# 使用二进制读取音频文件,确保路径正确
audio_file = open("audio.mp3", "rb")
# 使用高质量转录模型转录
transcription = client.audio.transcriptions.create(model="gpt-4o-transcribe",  # 或 whisper-1,根据需求选择模型file=audio_file
)
print(transcription.text)
  • 默认响应格式为 json,其中包含原始文本。
  • 若需指定响应格式为纯文本:
from openai import OpenAIclient = OpenAI()
audio_file = open("speech.mp3", "rb")
transcription = client.audio.transcriptions.create(model="gpt-4o-transcribe",file=audio_file,response_format="text"
)
print(transcription.text)

安全要点与错误处理建议:
- 确保 API key 合规且不会泄漏。
- 对 API 响应做异常捕获和超时处理。
- 音频文件应避免包含敏感信息。
- 注意速率限制,合理设置重试机制。

参数详情可在官方 API 文档查阅,不同模型参数支持情况有所差异。

音频翻译(Translation)

Translations 端点仅 whisper-1 模型支持。将非英语音频翻译为英文:

文件名示例:translate_audio.py

from openai import OpenAIclient = OpenAI()
audio_file = open("german.mp3", "rb")
translation = client.audio.translations.create(model="whisper-1",file=audio_file
)
print(translation.text)
  • 输出为英文文本。
  • 目前仅支持翻译为英文。

支持的语言列表

当前支持以下语言(部分 ISO 639-1/639-3 代码):

Afrikaans、Arabic、Armenian、Azerbaijani、Belarusian、Bosnian、Bulgarian、Catalan、Chinese、Croatian、Czech、Danish、Dutch、English、Estonian、Finnish、French、Galician、German、Greek、Hebrew、Hindi、Hungarian、Icelandic、Indonesian、Italian、Japanese、Kannada、Kazakh、Korean、Latvian、Lithuanian、Macedonian、Malay、Marathi、Maori、Nepali、Norwegian、Persian、Polish、Portuguese、Romanian、Russian、Serbian、Slovak、Slovenian、Spanish、Swahili、Swedish、Tagalog、Tamil、Thai、Turkish、Ukrainian、Urdu、Vietnamese、Welsh。

模型训练覆盖近 98 种语言,但仅对列出的语言保证较高准确率(词错误率低于 50%)。其他语言可尝试,但质量不保证。

时间戳功能

通过 timestamp_granularities[] 参数,whisper-1 支持在转录结果中添加时间戳,可针对片段或词级。

文件名示例:transcribe_with_timestamps.py

from openai import OpenAIclient = OpenAI()
audio_file = open("speech.mp3", "rb")
transcription = client.audio.transcriptions.create(file=audio_file,model="whisper-1",response_format="verbose_json",timestamp_granularities=["word"]
)
print(transcription.words)
  • whisper-1 支持该参数。
  • 可用于字幕、视频编辑等场景。

处理较长音频

25 MB 限制下,长音频需分割。建议避免在句子中间切割,可用 pydub 等库辅助:

文件名示例:split_audio.py

from pydub import AudioSegment# 加载音频
song = AudioSegment.from_mp3("good_morning.mp3")
ten_minutes = 10 * 60 * 1000  # 10分钟(毫秒)
first_10_minutes = song[:ten_minutes]
first_10_minutes.export("good_morning_10.mp3", format="mp3")

注意:第三方工具如 pydub 需自行评估安全性与兼容性。

上下文提示与转录优化

通过 prompt 参数可提升模型识别罕见词汇、专有名词或维持文本风格:

文件名示例:transcribe_with_prompt.py

from openai import OpenAIclient = OpenAI()
audio_file = open("speech.mp3", "rb")
transcription = client.audio.transcriptions.create(model="gpt-4o-transcribe",file=audio_file,response_format="text",prompt="本次录音为关于OpenAI、GPT-4.5与人工智能未来发展的讲座。"
)
print(transcription.text)

提示场景举例:
- 提供领域词汇、专有名词(如 DALL·E、GPT-3)。
- 分段处理时,传递上一段文本保持上下文。
- 控制输出风格(如简体/繁体、标点、填充词等)。

whisper-1 仅保留最后 224 个 token 的 prompt,有一定局限性。
多语言输入下采用专用分词器,详情可查阅 Whisper 开源包。

流式转录

静态音频文件流式转录

API 支持对已完成音频(如文件、基于自身轮次检测)进行流式转录:

文件名示例:stream_transcription.py

from openai import OpenAIclient = OpenAI()
audio_file = open("speech.mp3", "rb")
stream = client.audio.transcriptions.create(model="gpt-4o-mini-transcribe",file=audio_file,response_format="text",stream=True
)
for event in stream:print(event)  # 实时输出转录片段
  • 每段转录完成即收到 transcript.text.delta 事件,最终有 transcript.text.done 包含完整文本。
  • 可通过 include[] 参数获取词概率(logprobs),评估模型置信度。
  • 该功能不适用于 whisper-1

实时录音流式转录

通过实时 API,可通过 WebSocket 实时推送音频并转录。连接示例:

wss://zzzzapi.com/v1/realtime?intent=transcription

初始化转录会话示例 Payload:

{"type": "transcription_session.update","input_audio_format": "pcm16","input_audio_transcription": {"model": "gpt-4o-transcribe","prompt": "","language": ""},"turn_detection": {"type": "server_vad","threshold": 0.5,"prefix_padding_ms": 300,"silence_duration_ms": 500},"input_audio_noise_reduction": {"type": "near_field"},"include": ["item.input_audio_transcription.logprobs"]
}

推送音频数据:

{"type": "input_audio_buffer.append","audio": "Base64EncodedAudioData"
}
  • 采用 VAD(语音活动检测)模式时,每检测到语音块即返回 input_audio_buffer.committed 事件。
  • API 返回语音开始、停止、完成等事件。
  • 实时会话资源结构详见 API 文档。
  • WebSocket 可直接用 API key 或临时 token 认证,临时 token 可通过 POST v1/realtime/transcription_sessions 获取。

提高转录可靠性的建议

常见挑战如罕见词汇识别,建议:
- 使用适当 prompt 提供上下文。
- 转录后可结合 GPT-4 等模型进行文本校正。
- 结合词概率(logprob)输出辅助评估。
- 遇到多段处理时,合理传递上下文。
- 留意模型与参数支持情况,合理选择模型。


附注
- 以上示例仅供技术演示,请根据实际业务合规性与安全要求进行调整。
- 相关参数如超时、重试、速率限制请参考官方 API 文档及最佳实践。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT-布局管理器

Qt布局管理器 一、布局管理器介绍布局管理器(Layout Manager)是在图形用户界面(GUI)应用程序中用于自动管理和排列窗口部件(Widget)的工具。Qt 共提供了 5 种布局管理器,来帮助开发者方便地组织…

Linux CentOS 安装 .net core 3.1

打开终端,输入以下命令以添加 .NET Core Yum 仓库:sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm安装 .NET Core SDK:sudo yum install dotnet-sdk-3.1验证安装:dotnet --versionre…

深度剖析Spring AI源码(三):ChatClient详解,优雅的流式API设计

深度剖析Spring AI源码(三):ChatClient详解,优雅的流式API设计“The best APIs are those that make simple things simple and complex things possible.” —— Alan Kay (计算机科学巨匠) Spring AI的ChatClient API正是这句话…

C语言基础:(二十五)预处理详解

目录 前言 一、预处理符号 二、#define 定义常量 三、#define 定义宏 四、带有副作用的宏参数 五、宏替换的规则 六、宏函数对比 七、# 和 ## 7.1 #运算符 7.2 ##运算符 八、命名约定 九、#undef 十、命令行定义 十一、条件编译 十二、头文件的包含 12.1 头…

本地文件夹即时变身 Web 服务器(文件服务器)

一:http-server npm install --global http-server 使用,在一个目录下打开 cmd http-server [path] [options] [path] defaults to ./public if the folder exists, and ./ otherwise. 可以下载文件,但是不能下载文件夹。 二:…

Golang云端编程入门指南:前沿框架与技术全景解析

Golang云端编程入门指南:前沿框架与技术全景解析 1 引言:Go语言在云原生时代的优势 Go语言(Golang)由Google开发,凭借其简洁的语法、卓越的并发性能和高效的编译速度,已成为云端应用开发的首选语言之一。…

蓝凌EKP产品:从 XML 到 JSON ——表单存储的性能优化实践

1. 背景介绍蓝凌 EKP 的表单引擎,是整个低代码平台的核心能力之一。它不仅仅是“存储表单”,更是 企业级应用快速构建的基础设施。它支持各种复杂表单配置(字段、布局、校验、权限、联动、子表单)。它能灵活绑定流程,实…

STM32高级定时器-输出比较模式

一.输出比较原理1.输出比较 通过定时器的外部引脚对外输出控制信号,将通道X(x1,2,3,4)通常设置为PWM1、PWM2模式。 2.比较寄存器 当计数器CNT和比较寄存器CCR的值相等时,输出参考信号OCxREF的信号的极性发生改变,其中OCxREF1(高电平)称为有效…

深入理解Unity中的`.meta`文件:以纹理文件为例

在Unity开发中,.meta文件是一个经常被提及但又容易被忽视的组成部分。这些隐藏的元数据文件在项目的稳定性和一致性中扮演着重要角色,尤其是在处理纹理文件时。本文将深入探讨.meta文件的作用、内容、版本控制以及常见问题,帮助开发者更好地理…

【机器学习】3 Generative models for discrete data

本章目录 3 Generative models for discrete data 65 3.1 Introduction 65 3.2 Bayesian concept learning 65 3.2.1 Likelihood 67 3.2.2 Prior 67 3.2.3 Posterior 68 3.2.4 Posterior predictive distribution 71 3.2.5 A more complex prior 72 3.3 The beta-binomial mod…

Gemini CLI 与 MCP 服务器:释放本地工具的强大潜力

前言 Gemini CLI 是一款强大的命令行工具,它将 Google 的 Gemini 模型带入了您的终端。然而,其真正的潜力在于通过 模型上下文协议(Model Context Protocol, MCP) 与外部工具集成。本文将结合两篇关键文章,深入探讨什…

HTTP、HTTPS 与 WebSocket 详解

HTTP、HTTPS 与 WebSocket 详解 在网络通信中,HTTP、HTTPS 和 WebSocket 是三种常见的应用层协议,分别适用于不同的场景。以下从定义、特点、工作原理和适用场景等方面详细解析: 一、HTTP(HyperText Transfer Protocol&#xff0c…

8月21日

#include "head.h"seq_p create_seq() {seq_p S(seq_p)malloc(sizeof(seq_list));if(SNULL){printf("malloc error");return NULL;}memset(S,0,sizeof(seq_list));return S; }//头插 void insert_head(seq_p S,int value,int len) {//判NULLif(SNULL){prin…

视频号存在争议了...

目前实测到:视频号里那套 争议信息提示加AI真相雷达,已经在不少视频下上线了(这是一个非常火爆的趋势!)伙伴们都知道,短视频里的观点来得快、走得也快,很多人看完就转发。你想想看,要…

音视频处理工作室:实时通信的媒体层设计

在开发视频会议、语音聊天等实时通信应用时,媒体层(Media Layer) 是整个系统的核心。它就像是一个专业的"音视频处理工作室",负责从采集声音画面到最终播放的全流程。本文将通过通俗易懂的比喻,解析媒体层中…

读《精益数据分析》:A/B测试与多变量测试

A/B测试与多变量测试:从入门到实战的完整指南 在数据驱动的时代,实验已经成为产品优化和商业决策的核心工具。而在众多实验方法中,A/B测试与多变量测试几乎是每一位产品经理、数据分析师、增长团队绕不开的关键词。 很多人第一次听到它们时&a…

中介者模式及优化

中介者模式(Mediator Pattern)是一种行为型设计模式,其核心思想是通过引入一个“中介者”对象,封装多个对象(称为“同事对象”)之间的复杂交互关系,使同事对象无需直接相互引用,而是…

卷积神经网络的基本概念

卷积神经网络 CNN,即卷积神经网络,是一种深度学习算法,在图像处理,视觉识别等任务中表现出色。 卷积神经网络的组成 CNN模型的组件包括卷积层,池化层,全连接层。 卷积层:提取图像中的局部特征池…

亚远景- 从算法到刹车片:ISO/PAS 8800如何量化自动驾驶的“安全冗余”?

ISO/PAS 8800作为全球首个针对道路车辆人工智能安全的权威标准,通过全生命周期管理框架与量化安全指标,为自动驾驶系统构建了从算法到硬件的“安全冗余”量化体系,其核心逻辑可拆解为以下四层结构:一、数据层:量化训练…

【QT/C++】实例理解类间的六大关系之实现关系(Realization)

【QT/C】实例理解类间的六大关系之实现关系(Realization) 在前面章节讲完了实例理解类间的六大关系之泛化关系,效果不错,获得粉丝的一致好评!!! 接下来,本文我将继续尝试分享并总结…