发布于 2026-01-06 2 阅读
0

OpenAI Whisper:在终端中免费转录 DEV 的全球展示与讲述挑战赛,由 Mux 呈现:展示你的项目!

OpenAI Whisper:在终端中免费转录

由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!

写日记有很多好处——有助于记忆、处理信息、维护心理健康等等!

我一直渴望成为一名“日记作者”,但作为一名开发者,我有一些偏好:

  • 音频输入:我更喜欢说话来处理信息,而且速度更快,所以我更喜欢音频优先。
  • 文本输出:我永远不会听自己说话的录音,所以我需要将音频转录成文本。
  • 数字存储:易于访问、便于移动、可搜索、可备份——还需要我多说吗?

更喜欢视频版本?

问题及解决方法

我开始使用电脑内置的语音输入功能,但发现自己把所有时间都花在了纠正错误上——我根本控制不住自己!

最近,我偶然发现了 Whisper AI——一款由 OpenAI 开发的免费机器学习转录工具。玩转 AI,花 6 个小时实现自动化?!👋 赶紧报名!

本文将向您展示如何:

  1. 在您的终端中录制音频(!)。
  2. 将其誊写成日记。
  3. 将条目推送到Gitub进行备份。

这是极客们梦寐以求的日记体验。而且它是免费的。

(对于 macOS 用户,我们将设置 macOS 原生通知来确认日志条目。)

步骤 1:录制音频

首先,我们需要安装FFmpeg,这是一个集音频和视频处理于一体的工具。我们将使用它来录制音频,而 Whisper AI 将使用它来生成转录文本。

安装 ffmpeg

虽然可以通过多种方式安装,但最简单的方法是使用软件包管理器,例如macOS 上的Homebrew或Windows 上的Chocolatey

自制啤酒
brew install ffmpeg

巧克力味
choco install ffmpeg

注意:在使用这些命令之前,您需要安装 brew(macOS 系统)或 cholcolatey(Windows 系统)。

找到您的输入框

FFmpeg 可以列出您计算机上的所有输入文件。由于它使用基于您操作系统的本地工具,因此您需要输入适用于您计算机的正确命令。

macOS



ffmpeg -f avfoundation -list_devices true -i ""


Enter fullscreen mode Exit fullscreen mode

视窗



ffmpeg -f dshow -list_devices true -i dummy


Enter fullscreen mode Exit fullscreen mode

Linux



ffmpeg -f alsa -list_devices true -i ""


Enter fullscreen mode Exit fullscreen mode

上述命令将返回一个输入列表——包括视频和音频。请记下输出结果,并记下您需要的音频输入的确切名称。

根据此输出结果,我将选择“MacBook Pro 麦克风”:



AVFoundation audio devices:
[AVFoundation indev @ 0x14b004460] [0] MacBook Pro Microphone
[AVFoundation indev @ 0x14b004460] [2] Chris phone Microphone


Enter fullscreen mode Exit fullscreen mode

录制音频

通过指定所需输入设备的名称,您可以指示 FFmpeg 录制音频。我们还会添加一些其他实用功能:

  • 计时:-t标志位设置要录制的秒数。我将其设置为60录制一分钟。
  • 文件名:您可以根据今天的日期设置输出文件名,$(date +'%Y%m%d').mp3生成名为 YYYYmmdd.mp3 的 mp3 文件(即,根据录制日期)。
  • 位置:设置输出文件的完整路径,使命令可以从任何目录执行。

目前我们掌握的情况如下:

macOS



ffmpeg -f avfoundation -i ":MacBook Pro Microphone" -t 60 "/Users/chris.pennington/journal/$(date +'%Y%m%d').mp3"


Enter fullscreen mode Exit fullscreen mode

视窗



ffmpeg -f dshow -i ":Windows Microphone" -t 60 "/Users/chris.pennington/journal/$(date +'%Y%m%d').mp3"


Enter fullscreen mode Exit fullscreen mode

Linux



ffmpeg -f alsa -i ":Linux Microphone" -t 60 "/Users/chris.pennington/journal/$(date +'%Y%m%d').mp3"


Enter fullscreen mode Exit fullscreen mode

步骤二:转录

你已经有了录音,现在是时候把它转录成文字了。

安装 Whisper AI

这里的关键工具是 Whisper AI Python 库,所以你需要三样东西:

1. 安装 Python 3.8–3.11

您可以使用以下命令检查您的 Python 版本python3 -V。如果您没有此命令,或者您的版本不是 3.8–3.11,请前往python.org下载最新的 3.11 版本。

下载完成后,像安装其他程序一样安装 Python。Windows 和 macOS 都需要额外一个步骤:

  • Windows:如果您使用的是 Windows 系统,请确保在安装过程中选中“将 Python.exe 添加到 PATH”。
  • macOS:在 macOS 系统上,您还需要安装 Python 的安全命令以允许安全网络请求。Finder 应该会自动打开,显示您计算机上与 Python 关联的文件。将“安装证书”文件拖到终端,然后按 Enter 键Return运行安装命令。

2. 安装 pip

您还需要 Python 的包管理器 pip,因为我们将使用它来安装 Whisper AI。

它应该随 Python 一起安装,但你可以用以下命令再次确认python3 -m pip --version

如果没有 pip,请运行以下命令进行安装:
python3 -m pip install --upgrade pip

3. 安装 Whisper AI

最后,是点睛之笔——Whisper AI。这条命令会安装 Whisper AI 及其运行所需的依赖项。

pip install -U openai-whisper

将你的音频转录成文字

Whisper 让音频转录变得轻而易举。只需输入whisper文件名,即可自动将音频转录成多种格式。就是这么简单!

不过,您还可以向 Whisper AI 提供更多指令。以下是一些补充说明:

  • 语言:默认情况下,Whisper 会检测您的语言,但您可以通过--language标志指定语言(支持数十种语言!)。
  • 模型: Whisper 提供多种转录质量级别。默认情况下,它使用较小的模型,但您可以通过设置--model medium标志获得稍好一些(虽然速度较慢)的结果(对于英语使用者,我推荐这样做--model medium.en)。
  • 文件类型:虽然 Whisper 可以输出多种文件类型(例如 srt、json 等),但对于日志记录,我需要一个 txt 文件,所以我将添加该--outout_format txt标志。

最终结果如下:



whisper "/Users/chris.pennington/journal/$(date +'%Y%m%d').mp3" --model medium.en --language English --output_format txt


Enter fullscreen mode Exit fullscreen mode

注意:我的 MacBook Pro 无法进行推理,所以我还添加了该--fp16 FALSE标志,以避免 Whisper AI 尝试推理的麻烦。

把它们组合起来

完整的命令将执行以下操作:1)录制音频;2)转录音频;3)删除音频文件。由于这三个命令都使用相同的文件路径,我们可以将其提取到一个单独的变量中,并在每个命令中引用该变量,从而稍微简化代码。



AUDIO_FILE="/Users/chris.pennington/journal/$(date +'%Y%m%d').mp3"

ffmpeg -f avfoundation -i ":MacBook Pro Microphone" -t 60 "$AUDIO_FILE"

whisper "$AUDIO_FILE" --model medium.en --language English --fp16 False --output_format txt

rm "$AUDIO_FILE"


Enter fullscreen mode Exit fullscreen mode

注意:如果您使用的是 Windows 或 Linux 机器,请记得修改 FFmpeg 的第一个命令。

除非你想每天都输入这些命令,否则我建议你创建一个别名。我用的是Warp,所以我会右键点击命令,选择“另存为工作流”来保存我的脚本。Warp AI 甚至还能帮我自动填充标题和描述,并检测变量。

Warp 中的工作流程,标题、描述和参数已填写完毕

注意:您也可以为 shell 添加一个别名,指向此 shell 脚本。

步骤 3:备份到 GitHub

接下来,让我们将这些文件自动推送到在线仓库以保存您的日志。创建一个本地仓库(git init)并提交当前文件。

接下来,创建远程仓库并推送文件。

然后将以下内容添加到您的脚本中。



git add -A

git commit -m "$(date +'%Y%m%d') journal entry"

git push


Enter fullscreen mode Exit fullscreen mode

步骤 4:macOS 通知

在 macOS 上,您可以使用 AppleScript 显示通知。我将在脚本末尾添加以下代码:

osascript -e 'display notification "Transcription Complete!" with title "Whisper AI"'

macOS 通知显示转录完成

最终代码

这是我在 macOS 上的最终代码。由于我已经创建了一个代码仓库,需要cd进入相应的目录才能提交更改,所以我将修改脚本,使其首先切换到正确的目录。如果您使用的是 Windows 或 Linux 系统,请记得修改音频录制命令。



TODAY=$(date +'%Y%m%d')

cd /Users/chris.pennington/journal

ffmpeg -f avfoundation -i ":MacBook Pro Microphone" -t 60 "./$TODAY.mp3"

whisper "./$TODAY.mp3" --model medium.en --language English --output_format txt

rm "./$TODAY.mp3"

osascript -e 'display notification "Transcription Complete!" with title "Whisper AI"'

git add -A

git commit -m "$TODAY journal entry"

git push


Enter fullscreen mode Exit fullscreen mode
文章来源:https://dev.to/chris-pennington/how-i-use-ai-to-transcribe-in-my-terminal-4n0d