anki是背單詞的利器,有豐富的插件,其中awesometts是最經常使用的插件之一,支持大量的音源網站和語言。

惋惜的是,awesometts自己不支持forvo的音源,主要緣由是forvo的api要收費。因而我抱着試試看的態度,谷歌了一把,終於在github上找到這個項目,能夠給awesometts添加forvo音源,api的費用估計做者本身掏了。
安裝方法很簡單,以2.0.52版本爲例,將下圖的文件和文件夾所有複製到anki的安裝目錄\addons\awesometts文件夾內,重啓anki後就能看到awesometts中有forvo音源了。因爲forvo的服務器在國外,可能有時候會下載音頻失敗,多試幾回或者爬牆。


不過最近發現個小麻煩,這樣下載的音頻都是在forvo上默認排名第一(根據母語會員的投票)。好比搜索日語「地方」這個單詞,默認下載第1個發音,若是我以爲第2個發音比較清晰,彷佛只能手工下載。

因而我想了個很簡單的辦法,只需稍微修改一下就能實現。大體思路就是照着這個forvo插件再作一個,只是變成默認下載第2個音頻,而後在awesometts中選擇就好了。以下圖:

修改方法:
第一步,在awesometts的文件夾內修改__init__.py文件。
router = Router(
services=Bundle(
mappings=[
('abair', service.Abair),
('baidu', service.Baidu),
('collins', service.Collins),
......(中間省略)
('yandex', service.Yandex),
('youdao', service.Youdao),
('forvo', service.Forvo),
# 添加下面一行
('forvo2', service.Forvo2),
],
第二步,在awesometts\service文件夾內也有個__init__.py文件,也要修改。
# 添加導入模塊
from .forvo2 import Forvo2
__all__ = [
'Trait',
'Abair',
'Baidu',
'Collins',
# 中間省略
'Yandex',
'Youdao',
'Forvo',
# 添加下面一行
'Forvo2',
]
第三步,在awesometts\service文件夾內,複製forvo.py文件,命名forvo2.py,並修改4個地方。
# 第一個
# __all__ = ['Forvo']
__all__ = ['Forvo2']
......
# 第二個
# class Forvo(Service):
class Forvo2(Service):
......
# 第三個
# NAME = "Forvo"
NAME = "Forvo2"
......
# 第四個
# audio_url = data['data']['items'][0]['realmp3']
audio_url = data['data']['items'][1]['realmp3']
以上就OK了。若是想要切換方便,能夠在awesometts上保存爲經常使用配置。
