:computer: 参考环境

我的操作电脑是 M1 Pro 芯片的 Mac。

:white_check_mark: 前提条件

:hammer_and_wrench: 额外工具(可选)

  • 命令行视频下载工具 yt-dlp
  • 音视频图片操作工具 ffmpeg1

:clapper: 视屏下载(可选)2

yt-dlp \
-f bestvideo+bestaudio \
--merge-output-format mp4 \
"https://youtu.be/9wV-HwoJYpk?si=f9MrHYjhreBogvyH"

替换自己想要下载视频的网址和格式

:musical_note: 音频提取(可选)3

ffmpeg -i video.mp4 -vn audio.mp3

自己指定输入视频和要保存的音频的文件名

:package: 使用 uv 创建 Python 项目

uv init speech-recognition
cd speech-recognition

Python 最新版本超过 3.11,而 Whisper 支持试用的最高 Python 版本是 3.11,默认安装 Python 而不指定版本时,若直接运行 Whisper 就会报错失败。

uv python install 3.11
uv python pin 3.11

:speech_balloon: 使用 Whisper 进行语音识别

uv add openai-whisper

这一步必须关闭科学上网代理,否则会遇到网络错误,可能是 pypi 的限制。

uv run whisper audio.mp3 \
--model tiny \
--language en \
--output_format srt

替换 audio.mp3 为自己的文件4

模型权重(tiny、base、small、medium、large),大小依次约为(50MB、130MB、500MB、1.5GB、3GB), 模型越大效果越好,对电脑性能要求也越高。如果语音清晰,则小模型就能达到很好的效果

媒体文件中人物说话所使用的语言

输出格式(如 srt、txt、vtt)

:broom: 用后清理

cd ..
rm -rf speech-recognition
rm -rf ~/.cache/

:question: Q & A

Q: 为什么要使用 uv 创建项目,而不是直接运行 Whisper?

A: 因为 Whisper 支持的最高 Python 版本是 3.11,超过这个版本则直接无法安装运行,我之前已经 安装了 Python 3.13 了,不愿再降级折腾。

:memo: 备注

  1. yt-dlp 依赖 ffmpeg。 

  2. 此步骤只是为记录工具的使用,如果本地有或能通过其他方式得到视频则可略过。 

  3. yt-dlp 可以直接下载音频,多此一举只是为了记录工具使用。

    yt-dlp \
    --extract-audio \
    --audio-format mp3 \
    --audio-quality 0 \
    -o "%(title)s.%(ext)s" \
    "https://youtu.be/9wV-HwoJYpk?si=f9MrHYjhreBogvyH"
    

  4. 除了音频也可以指定视频(如:video.mp4)