分享一个github项目,让anki的awesometts插件支持forvo音源

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分享一个github项目,让anki的awesometts插件支持forvo音源相关的知识,希望对你有一定的参考价值。

anki是背单词的利器,有丰富的插件,其中awesometts是最常用的插件之一,支持大量的音源网站和语言。

技术图片

??可惜的是,awesometts本身不支持forvo的音源,主要原因是forvo的api要收费。于是我抱着试试看的态度,谷歌了一把,终于在github上找到这个项目,可以给awesometts添加forvo音源,api的费用估计作者自己掏了。

??

??安装方法很简单,以2.0.52版本为例,将下图的文件和文件夹全部复制到anki的安装目录addonsawesometts文件夹内,重启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),
        ],

??第二步,在awesomettsservice文件夹内也有个__init__.py文件,也要修改。

#  添加导入模块
from .forvo2 import Forvo2
__all__ = [
    ‘Trait‘,
    ‘Abair‘,
    ‘Baidu‘,
    ‘Collins‘,
    # 中间省略
    ‘Yandex‘,
    ‘Youdao‘,
    ‘Forvo‘,
    # 添加下面一行
    ‘Forvo2‘,
]

??第三步,在awesomettsservice文件夹内,复制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上保存为常用配置。

技术图片

以上是关于分享一个github项目,让anki的awesometts插件支持forvo音源的主要内容,如果未能解决你的问题,请参考以下文章

最新最全的 Android 开源项目合集

最新动态: 开源项目 ionic3-awesome — 实现fullScreenVideo

最新动态: 开源项目 ionic3-awesome — 实现多主题功能

最新动态:开源项目 ionic3-awesome — 实现iframe嵌入外部网页

开源项目一个GitHub项目,囊括人脸图像要读的重要论文

Github优秀java项目集合(中文版) - 涉及java所有的知识体系