SuperAPI AI 工具集

openai-whisper

通用与其它

查看项目

更新于 10-16 08:25

技能介绍

用途

该技能使用 OpenAI Whisper 模型在本地进行音频转写,文件直接在设备上处理,兼顾隐私与速度。适合将语音转换为文本,并支持多语言、词级时间戳和说话人分离等功能。

适用场景

适用于处理本地音频文件的任务,例如转写访谈、播客或会议,尤其当你需要离线处理以避免网络依赖或关注数据隐私时。也适用于需要准确时间戳或说话人识别的工作流,如内容创作或分析。

主要能力

转写:可将音频转换为 90 多种语言的文本;通过 --language 标志指定语言(例如 --language en 表示英语)。

时间戳:输出词级时间信息;使用 --word-level 启用详细分段(例如每个词的开始/结束秒数)。

说话人分离:识别音频中的不同说话人;需要额外配置,如 Pyannote 库;配置完成后可使用 --diarize 标志。

多格式支持:可处理 MP3、WAV、FLAC 等输入格式;输出 JSON 或 SRT,便于解析。

模型选择:可从 tiny、base、small、medium、large 等模型中选择;模型越大准确率越高,但计算需求也越大(例如 --model medium)。

使用方式

始终在已安装该库的 Python 环境中运行 Whisper。基本转写时,加载音频文件并通过 CLI 指定选项。可在流水线中使用,将输出管道传递给其他工具,如文本分析技能。进行说话人分离前,需先确保依赖已安装。示例一:转写短音频片段用于记笔记。示例二:处理多说话人录音以生成会议摘要。

完成转写的步骤:

安装依赖:在环境中运行 pip install git+https://github.com/openai/whisper.git pyannote.audio。

加载并处理音频:使用 Whisper CLI 直接处理文件。

处理输出:解析 JSON 结果以获取时间戳,并集成到更大的脚本中。

常用命令/API

快速任务可使用 Whisper CLI。API 集成时可直接调用 Python 库。

基本转写的 CLI 命令:

whisper path/to/audio.mp3 --model base --language en --output_format json

该命令转写文件,将输出保存为 JSON,并包含时间戳。

带时间戳和说话人分离的 CLI:

whisper path/to/audio.wav --model medium --word-level --diarize

生成词级时间信息和说话人标签;需通过 Pyannote 配置说话人分离。

Python API 片段:

import whisper
model = whisper.load_model("base")
result = model.transcribe("path/to/audio.mp3", language="en")
print(result["text"]) # Outputs transcribed text

配置格式:Whisper 使用简单的 JSON 配置进行批处理;示例:

{ "model": "small", "language": "es", "task": "transcribe" }

通过 CLI 的 --config config.json 传入。本地使用无需认证密钥;若扩展到云服务,可使用环境变量如 $WHISPER_API_KEY 对接外部 API。

在代码中使用:导入库,加载模型,并调用 transcribe(),传入文件路径和任务模式等参数(例如 task="transcribe")。

集成说明

可通过将 Whisper 包装为 Python 脚本或 CLI 调用来集成到 AI 工作流。例如与文本处理工具串联:将 JSON 输出管道传递给情感分析技能。可在 Jupyter notebook 中用于交互式转写。确保环境支持 GPU 以加快处理(例如通过 CUDA)。嵌入更大应用时,需显式处理文件 I/O:使用 soundfile 库读取音频文件,再传给 Whisper。多步骤任务中,可使用 subprocess 从其他脚本调用 Whisper CLI,捕获 stdout 以解析 JSON。

错误处理

常见错误包括缺少依赖、音频格式无效或大模型导致内存不足。处理方法:

文件未找到:运行前检查文件路径;在 Python 中使用 try-except:

try:
result = model.transcribe("path/to/audio.mp3")
except FileNotFoundError:
print("Audio file missing; verify path.")

模型加载失败:确保内存充足;必要时回退到更小的模型(例如将 --model large 改为 --model base)。

说话人分离错误:若 Pyannote 失败,使用 pip check pyannote.audio 验证安装;记录错误并回退到基本转写重试。

通用模式:在脚本中使用 subprocess 包装 CLI 调用并检查返回码;API 方面,捕获 whisper.utils.DecodeError 等异常,并用不同参数重试。

始终记录详细错误(例如通过 Python 的 logging 模块),并提供用户友好的消息,如“Error: Audio too long for selected model; try a smaller one.”

图谱关系

关联:与“audio-processing”集群相关,用于降噪等上游任务。

连接:与“text-analysis”技能相连,用于转写输出的下游处理。

链接:与“openai-gpt”配合,用 AI 摘要增强转写文本。