分享一個github項目,讓anki的awesometts插件支持forvo音源


  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上保存為常用配置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM