株式会社 アクエスト httpwwwa questcom AqKanjiKoe Android Manual 概要 本文書は、言語処理ライブラリ AqKanjiKoe Android をアプリケーションに組み込んで使用するためのプログラミ ングに関しての方法および注意点を示したものです。 AqKanjiKoe は漢字かな混じり文のテキスト情報を AquesTalk用のアクセント付きの音声記号列に変換するラ イブラリです。 このライブラリと音声合成ライブラリ AquesTalkを使うことにより、動的に変化する様々なテキストからリアルタイ ムに音声メッセージを生成できるようになります。 特長 ・簡単に組み込み可能 テキスト文字列を入力すると音声記号列を返す、シンプルな API ・高速な変換処理 約 " 万字秒の高速な変換処理Win 版で計測) ・高精度な読み・アクセント付与 最大 $" 万語の単語辞書とアクセントルールにより、正確な読みとアクセントを生成 仕様 AqKanjiKoe ライブラリ形式 so 形式ダイナミックライブラリ (JNI 実装) 各種 ABI に対応 armeabi) armeabi v+a) arm,- v.a) mips) mips,-) x.,) x.,0,- 対応 OS Android 3 API レベル9 以降 4Android 以下では使用できません 入力データ形式 漢字かな混じり文テキスト(Java String) 出力データ形式 AquesTalk音声記号列(Java String 開発環境 Android NDK r7"e プログラムサイズ 約 7""KByte 辞書サイズ 標準:約7MB(約36万語)、スモール:約5MB(約25万語) ラージ:約13MB(約50万語) ファイル ビルド及び実行時に下記のファイルを使用します。 libAqKanjiKoeso : AqKanjiKoe ライブラリの実体(ネイティブコード) AqKanjiKoejava : libAqKanjiKoeso を Java からアクセスするためのラッパークラス aq0dic : 辞書ファイル(複数ファイル 「AqKanjiKoe Android」の実体はネイティブコードで書いてあり、JNI 経由で呼び出しています。そのため、使用す る環境(ABIに応じたライブラリを使用する必要があります。たとえば、使用端末が ARM CPU の場合は armeabi) か armeabi v+a を、Intel CPU の場合は x., などのライブラリを使用します。 任意のアプリケーションを開発するときは、libAqKanjiKoeso と AqKanjiKoejava ファイルを、アプリケーションの プロジェクトに追加します。Android Studio の環境であれば、プロジェクトディレクトリに、上のファイルを下記のよう なディレクトリ構造上にディレクトリがなければ作成するコピーすればよいでしょう。 Andorid では FAT Binaryシングル APKというもので、複数の ABI のライブラリを1つの apk に含めて各種動作環 境に応じたアプリを作成できます。例えば、下記のように jniLibs に armeabi と x., の2つのライブラリを配置してビ ルドするだけで ARM と Intel CPU の両方に対応したアプリが作成できます。 >appsrcmain? java >アプリのソース? aqkanjikoe AqKanjiKoejava jniLibs armeabi libAqKanjiKoeso x., >必要に応じて libAqKanjiKoeso res assets なお、呼び出しの関係は、次のようになります。 4 アプリ ? AqKanjiKoejava ? libAqKanjiKoeso 実行時の辞書ファイルの配置 本ライブラリは、実行時に辞書ファイルをアクセスします。 辞書ファイルは SDK の aq0dic ディレクトリの下にある複数のファイルから構成されています。 辞書ファイルは、apk の中例えば assets)に置いたままで使用ができず、実行時にはローカルファイル領域に配置 する必要があるため、アプリケーションへの実装には若干注意が必要です。 辞書ファイルの実装方法としては、次の つが考えられます。 1.ZIP ファイルを展開して使用する方法 aq0dic 以下のファイルを1つの ZIP ファイルに圧縮して、assets ディレクトリに配置し、パッケージに含まれるように する。そして、アプリの初回の起動時に、この ZIP ファイルを files フォルダの下に展開する(サンプルアプリはこの 方法を用いています)。 2.辞書データをダウンロードする方法 ネットワーク上に辞書ファイルをアップロードしておき、アプリの初回起動時にネットワーク経由で辞書データをダウ ンロードして files フォルダの下に配置する。 なお、アプリ開発時には、辞書データをパッケージに含めると転送に時間がかかりデバッグ作業の効率が悪くなる ので、辞書データはパッケージからはずして、DDMS や adb を利用して手動で辞書ファイルを配置するのも効率的 です。 関数 API 4.1. Android 版 Java ラップクラス JNI をラップした Java クラスを用いてアクセスします package aqkanjikoe Convert 説明 漢字かな交じりのテキストを音声記号列に変換 String Convert String dirDic) String kanjiText 構文 引数 dirDic 辞書のディレクトリを指定。通常、B>app dir?aq0dicB。 kanjiText 入力漢字かな混じり文テキスト文字列 戻り値 音声記号列文字列。最大文字数 -"C,byte。 処理エラーの時はBDERRF>エラーメッセージ?B という文字列を返す。 実装方法 実装方法 次に示すコードは、アプリケーションの起動時に日本語のテキストを AqKanjiKoe ライブラリで音声記号列に変換 して、画面に出力するだけの単純なプログラムです。このプログラムを参照しながら以下に説明します。 package aqkktestaquestG import import import import androidappActivityG androidosBundleG androidwidgetTextViewG aqkanjikoeAqKanjiKoeG public class AqKKTest extends Activity I 44 Called when the activity is first created 4 JOverride public void onCreateBundle savedInstanceState I superonCreatesavedInstanceStateG String kanji K B"73 年、新年明けましておめでとうBG String dirDic K thisgetFilesDirtoStringG datadata>package name?files AqKanjiKoe kanjikoe K new AqKanjiKoeG String koe K kanjikoeConvertdirDic) kanjiG TextView textView K new TextViewthisG textViewsetTextB音声記号列:BLkoeG setContentViewtextViewG M M AqKanjiKoe のクラスをインポートします(, 行目) AqKanjiKoejava の中を見ればわかりますが、静的メソッドと、通常のメソッドが用意されています。いまのところ、 関数は1つだけなので、どちらを使っても違いはありません。 このサンプルでは、アプリ起動時の onCreateのなかで、AqKanjiKoe のインスタンスを生成しています(7+ 行 目)。 そして、String 文字列を音声記号列に変換します7. 行目。 番目の引数に指定した漢字を含む文字列が、音声 記号列に変換されて返されます。 最初の引数には辞書ファイルのディレクトリパスを指定します。ここでは、datadata>package name?files と なります。あらかじめ、このディレクトリに SDK に含まれる aq0dic 以下のすべてのファイルをコピーしておく必要が あります。辞書ファイルの配置場所は任意ですが、ライブラリからアクセスできるようにしておく必要があります。 辞書ファイルの指定誤りなどで変換処理が出来なかった場合には、”DERRF>エラーメッセージ?”の書式でエラー が返されます。必要に応じてエラー処理を行ってください。 サンプルアプリ サンプルアプリ SDK パッケージにはサンプルアプリ AqTkDemo のプロジェクトが含まれています。このアプリは、任意の日本語テ キストを音声記号に変換して、さらに AquesTalk で音声出力するものです。 なお、サンプルアプリのソースコードライブラリやライブラリのヘッダファイルを除くは、ご自由に改変してご使用 いただけます。 なお、辞書データは、BZIP ファイルを展開して使用する方法Bを用いています。 使用方法 Android Studio の開発環境が構築されていることが前提です。 7 パッケージ内の AqTkDemo フォルダを任意の場所にコピー Android Studio を起動 3 menu?File?Open でコピーした AqTkDemo フォルダを Open。 (Welcome to のウィンドウの場合は Open an existing Android Studio ProjectPackage) - 各種設定ファイルや build が自動的に行われます。 $ Project のツリーは下図のようになります。 , あとは、menu?Run?Run ’app’で実行します。 4 実行時に BDERRFinit dictionaryB が出るときは、AqTkDemo の古いアプリが残っていて新しい辞書が展開され ない場合があります。インストール前に AqTkDemo アプリを削除しておく必要があります。 辞書サイズ この SDK には、サイズの異なる 3 種類のシステム辞書が含まれています。 利用の目的に応じて選択してお使いください。D評価版は標準辞書のみF 辞書名 フォルダ サイズ 見出し語数 標準辞書 aq0dic 約7MB 約36万語 ラージ辞書 aq0dic0large 約 73MB 約 $" 万語 スモール辞書 aq0dic0small 約 $MB 約 $ 万語 ユーザ辞書 この SDK には、ライブラリの動作検証用にサンプルのユーザ辞書aq0userdicが含まれています。 独自の単語を追加する場合は、ユーザ辞書作成ツールGenUserDicexeを用います。 D評価版にユーザ辞書作成ツールは含まれていませんF GenUserDicexe は Windows アプリのため、Windows 環境で動作させる必要があります。 ユーザ辞書の編集 GenUserDicexe を起動します。 メニュー?ファイル?開く より、付属のサンプルのユーザソース辞書sample0src0userdiccsvを開きます。 D見出し語Fは、単語をすべて全角で指定してください。またアルファベットは、大文字で記述します。 D発音F部分には、その単語の読みとアクセントを指定します。読みは全角カナで記述し、アクセントは「’」半角で アクセント核声の高さが高→低に変化する部分に指定します。平板アクセントの場合はアクセントは指定しませ ん。 単語を追加する場合は、D見出し語F、D発音F、D品詞Fを指定して、D追加Fボタンを押下します。 表示されているレコードの内容を修正する場合は、D変更Fボタンを押下します。 表示されているレコードを削除する場合は、D削除Fボタンを押下します。 ユーザ辞書ファイルの生成と配置 ユーザ辞書ファイルの生成と配置 GenUserDicexe で内容を変更した後、一旦、メニュー?ファイル?上書き保存で修正内容を保存します。 その後、所望の辞書サイズを選択して、D生成Fボタンを押下し、出力するユーザ辞書ファイル名を指定します。 以上で、ユーザ辞書ファイルが生成されます。 ユーザ辞書のファイル名は aquserdic とし、ライブラリの実行時にはシステム辞書aqdicbinと同じディレクトリに 配置してください。 コマンドラインによるユーザ辞書ファイルの生成 サンプルのユーザソース辞書sample0src0userdiccsvをエディタ等で開くとわかるとおり、ソース辞書は各行が 見出し語) よみ) 品詞 で構成されています。 したがって、エディタ等を用いてユーザソース辞書を直接編集することができます。 注意点として、見出し語)はすべて全角で指定し、アルファベットは大文字で記述。読みは全角カナで記述し、アク セントは「’」半角で指定する必要があります。 GenUserDicexe は、コマンドラインでバッチ的にユーザ辞書を生成することもできます。以下のようにコマンドプロ ンプト等から実行すると、ユーザソース辞書と同じフォルダにユーザ辞書ファイルaq0userdicが生成されます。 GenUserDicexe MID ユーザソース辞書csv GenUserDicexe LARGE ユーザソース辞書csv GenUserDicexe SMALL ユーザソース辞書csv 注意点 単語の読みに、外来語の「テャ」などの一部の音韻は指定できません。指定可能な読みは、下記仕様の「読み記 号表」を参照ください。 「音声記号列仕様」 httpwwwa questcomdownloadmanualsiyo0onseikigoupdf ライセンス 本ライブラリを含んだアプリケーションを使用する場合は「使用ライセンス」の購入が必要となります。また、本ライ ブラリを含んだアプリの配布には事前に当社と『配布ライセンス契約』が必要となります。ライセンスの詳細は、 SDK パッケージ内のライセンスドキュメントを参照ください。 本ライブラリは、BSD ライセンスに基づいてライセンスされている下記のオープンソースソフトウェアを使用していま す。このライセンスの表示は SDK パッケージ内の credits ファイルを参照ください。また、本ライブラリを含んだア プリを配布する場合は、credits ファイルまたはその内容が含まれるようにしてください。 ・ MARISA Matching Algorithm with Recursively Implemented StorAge ・ NAIST Japanese Dictionary 形態素解析用辞書 ! 履歴 日付 版 変更箇所 更新内容 更新者 2011/01/17 1.0 新規作成 2013/06/29 2.0 Ver.2.0 用に書き換え N.Y 2016/03/11 2.1 Ver.2.1、IDE を AndroidStudio に変更 N.Y N.Y
© Copyright 2024 Paperzz