article_image

本文选自 UNTAG 付费栏目 《Anki 进阶手册(增订版)》 ,目前限时免费试读。欢迎选购完整栏目。

20230115 更新:经读者 @黄师傅 提醒,Anki for iOS 在静音模式下不会自动发音,如有需要,可以在复习设置中打开“弱化其他媒体内容+无视系统静音”

发音历来是备受关注的功能,毕竟 Anki 用户,往往需解外语学习的燃眉之急。主流解决思路仍然是安装第三方插件,并佐以体积巨大的语言资源文件包,这一方面增加了上手门槛,同时也拖慢了 Anki 的同步速度;我甚至以为,Anki 给新手们留下的心理阴影要归责于这些鲁布哥德堡式方案——从插件和语音库开始,连着还要折腾同步方案甚至网络环境。可惜无论在百度还是 Google,搜索“Anki+发音”,雄踞榜首的仍然是插件方案。

这一现状令人遗憾,盖 Anki 早已支持调用系统发音引擎,无论电脑还是手机,均能使用系统语音发声——Text to Speech[^2],而不需要插件,更不必在 Anki 服务器上囤积巨型语音库。其使用至为简单,只需一段代码,不会给同步带来任何负担;而可选参数又足够丰富,不仅能够指定语言和发声风格,也可以让用户决定是否自动发声。总之,接下来要介绍的方案,将把插件系统扫进历史的废纸堆。

第一章第一节 中,我将 Field 和 Cards 比喻为原料和工具,这个隐喻同样适用于发音语法。Anki 的发音代码可以直接写在 Cards 中,同时将需要发声的 Field 代码填入其中,便能像播放磁带一样将后者朗读出来。

Alt text
在 Anki 卡片模板中插入发音

如果没有特殊要求,Anki 会使用当前系统的语音读出所选 Field。在 iOS 和 macOS 设备中,我常用的语法如下:

{{tts en_US voices=Apple_Ava:Word}}

其中,en_US 表示需要调用的语言,这里是英语,日语的代码则是 ja_JPApple_Ava 是人声风格,如果您同时在 Windows 和苹果设备上使用 Anki,也可以指定两个人声,中间用逗号 , 分开;而 Word 则是需要朗读的 Field 名称,此处调用 Field 不需要双花括号,注意和普通的 Anki 语法区分。苹果系统下的语言和人声风格完整代码列表如下,显然,人声需要和专业对口,苟令一个日本人声讲英语,就不管用——而不仅仅是口音搞笑那么简单。

Alt text
Anki 语音语言和人声的代码

朗读 Field 内容时无所谓单词或者句子,声音效果主要取决于系统发音引擎。就 iOS 和 macOS 而言,Alex、Daniel 还有 Siri 等人声尚有增强效果,发音自然,句读恰当,速度适中。换言之,系统语音进化到何等高度,Anki 发音即与之齐头并进;就当沾了元宇宙和人工智能的光,人声朗读功能还在竿头直上之际,比起相信一个小众工具上的小众插件,我也更愿意押宝在科技巨头们身上。

Alt text
macOS 部分系统人声有增强选项

默认情况下,Anki 应当会自动朗读,但这一设置可能不合时宜:随着学习深入,多数单词日渐面熟,不需要按部就班地读一遍;何况刷 Anki 属于碎片时间里的消遣,若在排队时掉出一句洋文,也较为尴尬。至于那些生疏的卡片,反倒需要多读几次方能掌握发音,此情形下自动发音——只有打开卡片时出现一次——又不够用。此时就要对 Anki 发音代码和发音设置稍作调整。在 Anki 设置中勾选“Show play buttons on cards with audio”,借此在每一张带发音的卡片上添加播放按钮,转自动播放为手动操控,以便朗读任意次数,直到烂熟于心。

Alt text
为 Anki 发音设置手动播放按钮

如果你已经熟悉 Cards 界面,前述所有操作都应当轻车熟路,一杯茶的功夫就能设置好 Anki 发音。至于第三方插件和体态臃肿举步维艰的语音库,恐怕再也用不上了。

发音语法,着实只是 Anki 语法的九牛一毛,却足见其长。Anki 语法之于 HTML,类似 Markdown 和 HTML 关系,我们可以在 Markdown 编辑器里直接写 HTML 代码并获得相应效果,同样可以在 Anki 卡片模板编辑页面撰写 HTML 代码——不过,正如 Markdown 提供了诸多缩写记号(比如用 # 代替冗长的 <h1></h1>),Anki 也为制作记忆卡设计了一些语法,以解编写代码之苦。



author_avatar

Lawyer, macOS/iOS Automation Amateur