Philmist / AmiVoiceUserDic

自分使い用のAmiVoice Cloudユーザー単語辞書

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AmiVoiceで使う自分用辞書(とスクリプト)セット

このリポジトリはPhilmistが配信で使っている AmiVoice Cloud用のユーザー辞書と管理のためのスクリプトをセットにしたものです。

自分だけが使うのを想定しているので作りが雑です。ご了承ください。

スクリプト

AmiVoice Cloudはマイページから1000個までの単語を登録できるのですが、 配信によって単語の登録を切り替えるとなるとけっこう面倒です。 全部登録しておくと認識率も下がりますし。

それと同時に分野などで辞書(タブ区切りファイル:TSV)ファイルを分割しておいて 登録する前に結合するスクリプトも用意しました。

全てのスクリプトはPythonの仮想環境(virtualenv)で動かすことを前提にしています。

py -m venv env
.\env\Script\Activate.ps1
pip insatll -r requirements.txt

concat_dict.py

分割された辞書(TSV)を結合するスクリプトです。 同じディレクトリにあるconcat_conf.yamlの指定に従って辞書を結合します。 結合された辞書はoutディレクトリ内に出力されます。

python .\concat_dict.py

出力ディレクトリ等も一応は変更出来るようになっていますが テストはしていません。

入力されるtsvファイルは通常の仕様に加えて 行頭に#がある場合は読み飛ばす仕様を追加しています。 これを利用して各所にコメント行を追加できるようになっています。

現在のところ-a-general(汎用_会話)を想定して設計しています。 この音声エンジンに関してクラスのチェックと読みのチェックを行なっています。 現在のところそれ以外には対応していません。

個人的な単語はprivate.tsvを経由して登録されています。 このファイルはリポジトリに含めていないので必要に応じて作成してください。

New-Item .\private.tsv

upload_dict.py

辞書をAmiVoice Cloudの指定されたプロファイルに登録します。

登録するプロファイル名は辞書ファイル名の拡張子を除いた部分になります。 例えば辞書ファイル名がff14.tsvであった場合、 登録されるプロファイルはff14になり、 音声認識で指定するプロファイル名は:ff14になります。

python .\upload_dict.py --appkey APPKEY --grammar 接続エンジン名 辞書ファイル

appkeyとgrammarオプションはどちらも省略可能です。 appkeyを省略する場合にはAMIVOICE_APPKEY環境変数に使用するAPPKEYを設定してください。 grammarを省略した場合は-a-general(会話_汎用)が指定されたものと見なします。

辞書ファイルの指定にはワイルドカードが使用可能です。

python .\upload_dict.py .\out\*.tsv

辞書ファイルの指定も省略した場合は.\out\*.tsvが指定されたと見なします。

atokdic_to_amivoicetsv.py

ATOKのユーザー辞書用テキストファイルを AmiVoice Cloud用のTSVファイルへ変換するスクリプトですが、 使い捨てるつもりで作ったものですので2度以上使われることは想定してません。

util/*

現在のところ辞書チェック用のクラスを定義したファイルのみがあります。 具体的な使用方法はconcat_dict.pyを見てください。 抽象クラスは./util/dict_abc.pyにあります。

辞書

general以外の全ての辞書はdictディレクトリ以下に配置されています。

general/*

配信で使われる(使っている)ことが多い単語を収録しています。

ff14

"ファイナルファンタジー XIV: 新生エオルゼア"用の辞書です。 拡張の"暁月のフィナーレ"(6.3)時点までの単語をゆるやかに収録しています。 性質上ネタバレを含みます。

辞書のエントリは (https://signos-k-online.com/index/2017/05/21/ime%E7%94%A8ff14%E8%BE%9E%E6%9B%B8%E4%BD%9C%E6%88%90/) から一部を移植しました。

元ゲームの著作権表示は(C) SQUARE ENIX CO., LTD. All Rights Reserved.になります。

borderbreak

"BORDER BREAK"(PS4版)用の辞書です。 これも全てを収録するのではなく必要なところだけに絞って収録しています。

元ゲームの著作権表示は©SEGAになります。

eternalreturn

"エターナルリターン"用の辞書です。 最新のバージョンにはついていけていません。

元ゲームの著作権表示は©2021 Nimbleneuron Corpになります。

arknights

"アークナイツ"用の辞書です。 単語の多くは アークナイツ攻略wiki を参照して作成しています。

元ゲームの著作権表示は©2017 Hypergryph Co.,Ltd. ©2018 Yostar, Inc.になります。

ライセンス

CC-BY 4.0です。

参考

汎用エンジンクラス一覧

  • (クラス指定なし): 空白 or 無し
  • 固有名詞
  • 名前: 名前の姓(family name)
  • 名前(名): 名前の名(first name)
  • 駅名
  • 地名
  • 会社名
  • 部署名
  • 役職名
  • 記号
  • 括弧開き
  • 括弧閉じ
  • 元号

AmiVoice Tech Blogの単語登録クラス解説エントリに 詳細が載っています。

読み部分あれこれ

公式のものではありませんので念のため。

  • 読みには ヴァ/ヴィ/ヴ/ヴェ/ヴォ は使えない: ば/び/ぶ/べ/ぼ で入力する必要がある
  • 読みの自動変換抑制には変換を抑制したい音の前に"."(半角ドット)を挿入する
  • 読みは実際の発音を入力する( と表記すべき場面があるかもしれない)

どのエラーにひっかかってるか確認するには1エントリずつWebから登録して見ると良いです。

Tech Blogに参考記事があります。

About

自分使い用のAmiVoice Cloudユーザー単語辞書

License:Other


Languages

Language:Python 100.0%