这里讲的是安卓版Anki(AnkiDroid)的发音配置问题,其他版本应该也是类似的。
之前我采用的是设置通用语音库,但这种方法看似很好,说是可以共用媒体文件,实则鸡肋。因为我平时背的也就那么一个几千词的词库,却放了一个几万词的语音库在手机上,占空间不说,还有很多词找不到发音。但因使用已有些时日,担心进度丢失,又嫌麻烦,一直未改。最近因为手机刷机,重装软件,AnkiDroid也装了最新的2.0,就势把这个问题解决了。
虽说我最终是要在手机上使用,但有很多操作要在anki的桌面版本上才能完成,所以首先去anki官网下载Anki 2并安装。Anki 2存储词条、进度等的文件从原来的*.anki变为了*.anki2,还增添了一种能将媒体文件也打包在内的记忆库套装(*.apkg)文件 ,后面要用到这个。由于谷歌的网站打不开,AnkiDroid2是在豌豆荚上下载的。
如果之前使用的是Anki 1,先将*.anki 文件拷到电脑上,打开电脑上的Anki软件,选择文件->导入,文件类型选(*.anki),导入记忆库文件。当然也可以导入不含学习进度的txt文件。如果之前使用的就是Anki 2,可以直接将手机AnkiDroid文件夹中的collection.anki2文件复制粘贴替换桌面Anki的这个文件(默认应该在 我的文档->Anki->User 1 中)。
接下来要为卡片添加[sound:单词名.mp3]标签。我以前都是要导出为txt再用UE编辑,但这样就会丢失学习进度,这次看Anki的文档发现它自带有正则表达式替换功能,这样就不会丢失进度了。点击Anki菜单栏下面一行中的浏览,在弹出的Browser窗口左边一栏中点选要操作的记忆库,右边就会显示出所有的卡片内容。像我这种之前就包含[sound:***]但不合要求的要先将其清除。
先随便点选一个单词卡片,再按Ctrl+A全选所有卡片,点击编辑->查找替换。在查找栏里输入\[sound.+],替换栏就空着,再勾选以正则表达式输入,然后确定。清除后如下图
然后添加[sound:单词名.mp3]。全选所有卡片,查找替换。在查找栏输入(^([-a-zA-Z]+).*),替换栏输入\1[sound:\2.mp3],选择字段选择Front,勾选以正则表达式输入,点击确定。注意这样对带空格的词组不适用,只能发第一个词的音。替换后如下图
所有卡片改成上图格式后,就该下一步——获取发音媒体文件了。
我这次只要词库中的两千多词的发音,从两方面获取语音文件。一是从网上下载的语音库,如[朗文现代2005.Updated语音库].American(a-z)。可能会缺少一些单词的发音,可以从网上下载。我使用有道的在线词典时,看了一下它的发音来源,来自这个网址http://dict.youdao.com/dictvoice?audio=absorb,有的分英音,美音,如plant英音:http://dict.youdao.com/dictvoice?audio=plant&type=1 plant美音:http://dict.youdao.com/dictvoice?audio=plant&type=2 。我写了个程序将所有单词的语音文件放在一个文件夹里。为了方便大家使用,自己也练习一下MFC,又写了一个带界面的程序 。代码大量参考自网络,且仅在我的机子上运行过,很多情况和异常也没有去考虑,但大致的思路应该是这样的,有兴趣的可以自己改进。可执行文件下载 程序源码下载
程序界面如下图:
其中本地语音库路径选择电脑上的语音库,这里仅支持所有语音文件在一个文件夹下和按首字母分ABCD子文件夹组织两种形式。不选的话将全部从有道下载。词库txt文件是用桌面版Anki将记忆库导出的。
有道语音设置没有特殊要求的可以选默认,因为有的单词有道并没有提供多种版本发音,非默认的可能比较奇怪。比如这个http://dict.youdao.com/dictvoice?audio=absorb&type=1(看来有道也在改进,该发音目前已经正常)
没有网络或网络较差的可以勾选超时取消下载,避免程序停滞。
得到语音文件后,将其全部复制在我的文档->Anki->User 1->collection.media中,这时桌面版的Anki就已经可以发音了。选择文件->导出,导出格式(*.apkg),包含选择之前导入的ly3000记忆库,包含学习进度和Include media要保持勾选,然后导出。
将这个apkg文件复制到手机根目录的AnkiDroid文件夹下,打开Ankidroid软件,按菜单键,选择导入卡片即可。操作前需删除以前的anki2文件并做好备份。导入后这个apkg文件就可以删掉了。