使用Whisper全自动转录语音备忘录
近期,我经常使用苹果系统的语音备忘录,记录一下随想。美中不足的是,语音备忘录只有语音和标题,语音内容细节还做不到快速检索。为了优化语音记录的体验,同时保留原本的语音信息,我决定把语音转录成文字的步骤自动化。
我把目光放在了最近发布了API的Whisper模型。Whisper是OpenAI公司开发的通用语音识别模型,可以非常高效地转录语音为文字。由于Whisper开源,且可以在本地直接下载模型后使用,我决定使用Whisper本地模型。接下来,我会分享让Whisper全自动帮我转录语音,再同步到备忘录应用中的实现细节。
实现的效果
Mac上只要拖拽语音备忘录的语音到指定文件夹,即可完成后续转录和添加笔记的操作流程。 转录成功之后,文件夹只保留转录的*.txt文件,如下图所示:
Notes应用内的效果如下:
iOS上也类似,只需要保存语音备忘录的文件到iCloud的指定文件夹,也可以触发转录。
准备工作
Hazel软件
whisper模型相关
shortcuts命令
创建笔记的快捷指令
原理介绍
监听文件夹的*.m4a文件,自动执行whisper的命令,转录*.m4a文件成*.txt文本。随后把*.m4a和*.txt文件,通过shortcuts命令,添加到Notes备忘录。
实现的步骤
打开Hazel软件,选择监听文件夹并配置规则。
可以看到,Hazel的规则配置,本质是执行三段shell script。我下面展示Whisper和Shortcuts命令相关的脚本,还有一段shell script是进行文本标题插入,非核心代码所以跳过。
涉及到的快捷指令VoiceNoteCreator的实现也非常简单,如下所示:
Shortcuts命令通过run子命令,执行VoiceNoteCreator的快捷指令,并传递文件路径参数到快捷指令,供保存笔记使用。
总结
在Whisper的本地模型的支持下,我可以在本地直接实现语音备忘录的语音和文字保存,隐私和便利都满足。
插句题外话,shortcuts命令Mac系统自带,在这种情况下,在自动化方面,常规需求考虑shortcuts命令,可能比研究Applescript性价比更高。
感谢你的耐心阅读。
补充
2023-05-14
为了让whisper转录的内容更可控,比如标点符号或中文简繁体的控制,记得使用--initial_prompt参数。例如,希望有标点符号且是简体中文输出:
whisper $1 --language Chinese --threads 6 -f txt --initial_prompt "以下是普通话的句子。"