Whisper 的目标是构建一个 通用语音识别模型,能够在不同语言、不同口音、嘈杂环境、不同麦克风质量等条件下表现良好。
首先我们要先安装ffmpeg和Whisper
#ffmpeg
apt-get update && apt-get install -y ffmpeg
#检查
ffmpeg -version
Whisper
pip install git+https://github.com/openai/whisper.git
# 或
pip install openai-whisper
基础用法
whisper audio.mp3 --model medium --language Chinese
支持将中文、法语、西班牙语等语言直接翻译为英文文本
whisper audio.mp3 --task translate
分段+时间戳输出(字幕文件生成)
whisper audio.mp3 --output_format srt
支持将中文、法语、西班牙语等语言直接翻译为英文文本
whisper your_audio.wav --model small
| 模型名称 | 参数量 | 速度 | 准确率 | 适用场景 |
|---|---|---|---|---|
| tiny | 39M | 非常快 | 较低 | 移动端、快速转录 |
| base | 74M | 快 | 中 | 通用语音识别 |
| small | 244M | 中等 | 中上 | 多语种转录 |
| medium | 769M | 慢 | 高 | 高质量转写 |
| large | 1550M | 慢 | 最佳 | 多语言识别翻译、字幕生成 |
使用示例(Python)
import whisper
model = whisper.load_model("base")
result = model.transcribe("audio.mp3")
print(result["text"])
批量
#!/bin/bash
# 循环处理序号从 02 到 12 的文件
for i in {01..12}
do
# 构造文件名
input_file="FILE-$i.mp3"
# 打印正在处理的信息
echo "正在处理文件: $input_file"
# 执行 Whisper 命令
# 默认模型是 small,改为 medium,对于中文,使用 --language Chinese 可能精度更高
whisper "$input_file" --output_format srt --model medium --language Chinese
# 检查上一个命令是否执行成功
if [ $? -eq 0 ]; then
echo "成功生成: $input_file 的字幕"
else
echo "处理文件时出错: $input_file"
fi
echo "-----------------------------------"
done
echo "所有文件处理完成!"
#!/bin/bash
# 设置基础参数
BASE_NAME="SEFXHHYQ"
MODEL="large"
LANGUAGE="Chinese"
echo "开始处理音频文件转字幕..."
# 循环处理01到12文件
for i in $(seq -f "%02g" 1 12); do
FILENAME="${BASE_NAME}-${i}.mp3"
OUTPUT_SRT="${BASE_NAME}-${i}.srt"
# 检查文件是否存在
if [ ! -f "$FILENAME" ]; then
echo "警告: 文件 $FILENAME 不存在,跳过"
continue
fi
echo "正在处理: $FILENAME"
# 执行whisper转换
whisper "$FILENAME" \
--output_format srt \
--model "$MODEL" \
--language "$LANGUAGE"
# 检查是否成功
if [ $? -eq 0 ] && [ -f "${BASE_NAME}-${i}.srt" ]; then
echo "✓ 成功生成: $OUTPUT_SRT"
else
echo "✗ 处理失败: $FILENAME"
fi
echo "--------------------------------------"
done
echo "所有文件处理完成!"

评论