githubプロジェクトを共有して、ankiのawesomettsプラグインがforvoオーディオをサポートするようにします



Share Github Project Make Ankis Awesometts Plugin Support Forvo Audio



Ankiは単語を覚えるためのツールです。豊富なプラグインがあります。その中で、awesomettsは最も一般的に使用されるプラグインの1つです。多数の音源ウェブサイトと言語をサポートしています。

残念ながら、awesomettsはそれをサポートしていません forvo 音源の主な理由は、forvoのAPI料金です。だから私は試してグーグルで検索し、最終的にgithubでこれを見つけました 事業 、forvo音源をawesomettsに追加できます。APIのコストは、作成者自身が支払うと見積もられています。

インストール方法はとても簡単です。例としてバージョン2.0.52を取り上げ、下の図のすべてのファイルとフォルダーをankiインストールディレクトリ addons awesomettsフォルダーにコピーします。 ankiを再起動すると、awesomettsにforvo音源があることがわかります。 Forvoのサーバーは海外にあるため、オーディオのダウンロードに失敗したり、何度も試したり、はしごを登ったりすることがあります。




しかし、私は最近少し問題を発見したので、ダウンロードされたオーディオはデフォルトでforvoで最初にランク付けされます(ネイティブスピーカーの投票に基づいて)。たとえば、日本語で「場所」という単語を検索すると、デフォルトで最初の発音がダウンロードされます。 2番目の発音が比較的はっきりしていると思うと、手動でしかダウンロードできないようです。

そこで、少し変更を加えるだけで実現できる非常に簡単な方法を考えました。一般的な考え方は、forvoプラグインに従って別のプラグインを作成し、デフォルトになって2番目のオーディオをダウンロードしてから、awesomettsを選択することです。以下に示すように:



変更方法:

最初のステップは、awesomettsフォルダー内の__init__。pyファイルを変更することです。

router = Router( services=Bundle( mappings=[ ('abair', service.Abair), ('baidu', service.Baidu), ('collins', service.Collins), ... (omitted in the middle) ('yandex', service.Yandex), ('youdao', service.Youdao), ('forvo', service.Forvo), # Add the following line ('forvo2', service.Forvo2), ],

2番目のステップでは、awesometts serviceフォルダーに__init__。pyファイルもあります。これも変更する必要があります。

# Add import module from .forvo2 import Forvo2 __all__ = [ 'Trait', 'Abair', 'Baidu', 'Collins', # Middle omitted 'Yandex', 'Youdao', 'Forvo', # Add the following line 'Forvo2', ]

3番目のステップであるawesometts serviceフォルダーで、forvo.pyファイルをコピーし、forvo2.pyという名前を付けて、4つの場所を変更します。

# First # __all__ = ['Forvo'] __all__ = ['Forvo2'] ...... # the second # class Forvo(Service): class Forvo2(Service): ...... # The third # NAME = 'Forvo' NAME = 'Forvo2' ...... # the fourth # audio_url = data['data']['items'][0]['realmp3'] audio_url = data['data']['items'][1]['realmp3']

上記はOKです。簡単に切り替えたい場合は、awesomettsの一般的な構成として保存できます。