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']