這里講的是安卓版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文件就可以刪掉了。
