努力したWiki

推敲の足りないメモ書き多数

ユーザ用ツール

サイト用ツール


サイドバー

インデックス

ページトップ

documents:tools:tools-207

偽装ちゃん22(棒読みちゃんのフリをしてAssistantSeikaを呼ぶ)

今日は 7人がこのページを訪れました。
昨日は 11人がこのページを訪れました。

ソースコードEXEはGitHubで公開しています。

概要

棒読みちゃんのフリをするアプリケーション「偽装ちゃん(FakeChan22)」です。
棒読みちゃんを使うアプリケーション(IPC,Socket,HTTP経由)から利用します。

コメントビュアーなどのアプリ ➡ 偽装ちゃん22 ➡ AssistantSeika ➡ 音声合成製品

棒読みちゃんを停止して偽装ちゃん22を実行すれば、棒読みちゃんから呼び出せなかった64bit版の音声合成製品を呼び出せます。

偽装ちゃん22自身は音声合成を行いません。AssistantSeika経由で音声合成製品に音声合成を指示します。

構造上、棒読みちゃんと偽装ちゃん22は同時に実行できません。
ただし、棒読みちゃんβ版を利用するのであれば同時実行が可能になります。偽装ちゃん用の説明ではありますが偽装ちゃんと棒読みちゃんの同時利用例 を参照してください。

ダウンロード

GitHubのReleaseよりダウンロードをお願いします。

準備

このツールはAssistantSeikaが必須です。

先にAssistantSeika バージョン 20211204/u 以降をダウンロード、インストールしてください。

インストールが終わったら、使いたい音声合成製品とAssistantSeikaを起動しAssistantSeikaが音声合成製品を認識している状態にしてください。

棒読みちゃんが立ち上がっていたらそちらは終了させてください。

偽装ちゃん22の初期化

新しい版にしたら起動しなくなった、何かの拍子に起動できなくなった、といった場合、偽装ちゃん22の初期化で解決する可能性があります。

  1. 偽装ちゃん22を停止します。
  2. エクスプローラーで次のフォルダを開きます。
    C:\Users\<ユーザアカウント>\AppData\Local\FakeChan22
  3. フォルダ内にある “FakeChan22.exe_”から始まる名称のフォルダをすべて削除します。
  4. 偽装ちゃん22を起動します。

使い方

初回

初めて FakeChan22.exe ( BouyomiChan.exeにリネームしている場合はBouyomiChan.exe ) を立ち上げるとこの表示が行われます。

OKボタンを押すと話者リストのエディタへ遷移します。

話者リストに話者を登録し保存ボタンで保存を行うと、メインウインドウへ遷移します。

メインウインドウ

2回起動以降、最初に表示されるウインドウです。

このウインドウから、話者リストの編集、置換リストの編集、リスナ設定編集、キュー制御編集、呟き制御編集、ウインドウタイトル編集、comment.xml生成パス指定、を行います。

話者リスト作成/編集

初回起動時に遷移させられる、話者リストのエディタです。2回目以降はメインウインドウにある話者リストの追加,編集のボタンを押して表示されます。

話者一覧( AssistantSeika )から話者を選択し、追加ボタンを押すと話者リストに話者が追加されます。
全部追加ボタンを押すと話者一覧の全員を話者リストに追加します。
並びの変更は、話者リストの対象話者を選択してから↑移動ボタン、↓移動ボタンを使ってください。
話者リストの話者を選択して削除ボタンを押すと削除されます。利用のチェックを外すと、話者リストにあっても利用されない話者となります。

話者リストは、目的に従って話者を集約したリストになります。例えば音声製品毎の話者群であったり、女性・男性だけの話者群であったり、英語話者を集めたものであったり、目的によって複数作成できます。

同じ話者を複数登録しても構いません。

話者リストの話者名は修正が可能です。必要なら音声パラメタを調整し、パラメタに対応した名称にすると分かりやすいかもしれません。

話者リストの識別には、テキスト先頭に記述する話者指定の1~2桁英数字文字列を設定します。すべて設定する必要はありません。

テキスト 選択される話者
“S1)こんばんは!” cid=3101 さとうささら
“s2)こんばんは!” cid=3002 すずきつづみ CSの方
“s1)こんばんは!” cid=3103 弦巻マキ (日)

識別は大文字小文字を区別します。また同一の識別を指定した場合は後勝ちです。話者リストの先頭から辿って最後に設定された話者に適用されます。

話者リスト名にはデフォルトの名称が設定されています。目的や用途が明確な名前に変更してください。同じ話者リスト名で話者リストを複数登録できますが、管理が面倒になるのでお勧めしません。

置換リスト定義編集

偽装ちゃん22に送られてきたテキストの置換を行うための定義を行うエディタです。メインウインドウにある定義リストの追加,編集のボタンを押して表示されます。

追加ボタンを押すと置換定義が追加されます。
並びの変更は、置換定義を選択してから↑移動ボタン、↓移動ボタンを使ってください。
削除で選択した置換定義を削除します。
適用のチェックを外すと置換定義リストにあっても利用されない置換定義となります。

置換リストは目的によって複数作成できます。テキストの「ですます調」を「である調」にする置換、特定のライブ配信で補正する必要があるキーワードの置換、の様に複数作成できます。もちろん一つのリストにすべて登録しても構いません。

マッチングパターン、置換内容には、Microsoft .NET Framework の正規表現を適用できます。

マッチングパターン 置換内容 置換前 置換結果
沙花叉
さかまた
沙花叉クロヱ
さかまたクロヱ
^(.+)[GgGg][JjJj]$
グッジョブが送られました:$1
よくやった!GJ
グッジョブが送られました:よくやった!

名前の読みが難しそうな場合に登録して対応する等に利用できます。リストの先頭から順に適用していきます。

また、置換定義の一覧の下に、定義を行う際に便利だったり手間を省いたりできるオプションの選択ができます。この並びの順に処理が行われます。チェックを入れて有効にします。

名前 適用タイミング 説明
(1)URL置換 テキスト置換前 テキスト中のURLと思われる表記を指定の文字列に置換する。
(2)w置換 テキスト置換前 テキスト中のw を わら に置換する。
(3)8置換 テキスト置換前 テキスト中の888 を パチパチパチ に置換する。
(4)絵文字置換 テキスト置換前 テキスト中の絵文字の一部を通常テキストに置換する。
(5)絵文字除去 テキスト置換前 テキスト中の絵文字を除去する。
(6)半角変換1 テキスト置換前 テキスト中の全角英字記号を半角に置換する。
(7)半角変換2 テキスト置換前 テキスト中の全角数字を半角に置換する。
(8)テキスト置換 - 置換定義に従ってテキストを置換する。
(9)絵文字除去 テキスト置換後 テキスト中の絵文字を除去する。
(10)切捨て テキスト置換後 テキストを指定の長さに切り捨てる。
(11)切捨て テキスト置換後 (10)の処理が実行された場合、テキスト末尾に指定の文字列を結合する。

絵文字除去が2箇所ありますが、これは

  • 絵文字を含めてテキスト置換を行う
  • 絵文字を除いてからテキスト置換を行う

どちらの方法でも最終的に絵文字を除去できるようにするためです。※前者で置換されず残った絵文字を(9)で除去する

置換リスト名にはデフォルトの名称が設定されています。目的や用途が明確な名前に変更してください。同じ置換リスト名で置換リストを複数登録できますが、管理が面倒になるのでお勧めしません。

リスナインタフェース設定

偽装ちゃん22がテキストの受信を行うインタフェースの設定を行うエディタです。メインウインドウにあるリスナ設定の編集ボタンを押して表示されます。
編集するインタフェースを選択してから編集ボタンを押してください。

リスナ名は、メインウインドウで選択したインタフェース( リスナ )の名称です。

リスナ名 説明
BouyomiChan/Remoting 棒読みちゃんの IpcClientChannel接続を模しています。連携ソフトウエアがIPCを利用する場合はここを有効にします。
Socket127.0.0.1:50001 棒読みちゃんの Socket接続ポート50001を模しています。連携ソフトウエアがSocketを利用する場合はここを有効にします。
Socket127.0.0.1:50002 棒読みちゃんの Socket接続ポート50002を模しています。連携ソフトウエアがSocketを利用する場合はここを有効にします。
Socket127.0.0.1:50003 棒読みちゃんの Socket接続ポート50003を模しています。連携ソフトウエアがSocketを利用する場合はここを有効にします。
Socket127.0.0.1:50004 棒読みちゃんの Socket接続ポート50004を模しています。連携ソフトウエアがSocketを利用する場合はここを有効にします。
HTTP127.0.0.1:50080 棒読みちゃんの HTTP接続ポート500080模しています。連携ソフトウエアがHTTPを利用する場合はここを有効にします。
HTTP127.0.0.1:50081 棒読みちゃんの HTTP接続ポート500081模しています。連携ソフトウエアがHTTPを利用する場合はここを有効にします。
HTTP127.0.0.1:50082 棒読みちゃんの HTTP接続ポート500082模しています。連携ソフトウエアがHTTPを利用する場合はここを有効にします。
HTTP127.0.0.1:50083 棒読みちゃんの HTTP接続ポート500083模しています。連携ソフトウエアがHTTPを利用する場合はここを有効にします。
Clipboard OSのクリップボードにコピーされたテキストを入力として利用する場合はここを有効にします。棒読みちゃんのクリップボード監視プラグインと類似の機能です。
twitter TwitterのAPIキーを使って指定キーワード検索で取得したツイートを入力として利用する場合はここを有効にします。

リスナ利用のチェックを入れて、保存ボタンを押すと、テキスト受信を開始します。

非同期の音声再生にチェックを入れて、保存ボタンを押すと、テキストをキューで順番管理せず非同期に発声します。

話者のランダム選択にチェックを入れて、保存ボタンを押すと、話者リスト(通常時)で指定した話者リストの(利用にチェックが入った)話者の中からランダムに発声する話者を選択します。
テキストは置換リスト(通常時)で定義された内容で置換処理されたものになります。

非日本語判定にチェックを入れて、保存ボタンを押すと、テキスト中の非日本語文字が指定割合以上含まれている場合に非日本語と判定されます。
判定は置換処理の前に実施されます。

話者リスト(通常時)には、発声で使用する話者リストを指定します。

置換リスト(通常時)には、テキスト置換で使用する置換リストを指定します。

話者リスト(非日本語時)には、非日本語と判定が行われた時に発声で使用する話者リストを指定します。

置換リスト(非日本語時)には、非日本語と判定が行われた時にテキスト置換で使用する置換リストを指定します。

サービス名は、comment.xml のservice属性に設定する文字列です。

キュー制御設定

偽装ちゃん22が受信したテキスト(メッセージ)を登録したキューを制御するための境界値を設定するエディタです。メインウインドウにあるキュー制御の編集ボタンを押して表示されます。

キューから取り出したテキストの扱いを決める境界値を設定します。
上位のモードの境界値は、下位のモードの境界値よりも大きい必要があります。

状態 モード 説明
キュー滞留数がモード1の境界値よりも少ない モード0 話者リストの話者のパラメタに従って発声を行う。
キュー滞留数がモード2の境界値よりも少ない モード1 キュー内のメッセージ数が指定の数を超えると、話者リストの話者の話速パラメタを1.3倍に変更して発声を行う。
キュー滞留数がモード3の境界値よりも少ない モード2 キュー内のメッセージ数が指定の数を超えると、話者リストの話者の話速パラメタを1.5倍に変更して発声を行う。
キュー滞留数がモード4の境界値よりも少ない モード3 キュー内のメッセージ数が指定の数を超えると、話者リストの話者の話速パラメタを1.7倍に変更しテキストの長さを24文字に切捨てして発声を行う。
キュー滞留数がモード5の境界値よりも少ない モード4 キュー内のメッセージ数が指定の数を超えると、話者リストの話者の話速パラメタを1.9倍に変更しテキストの長さを12文字に切捨てして発声を行う。
キュー滞留数がモード5の境界値よりも多い モード5 キュー内のメッセージ数が指定の数を超えると、キューのテキスト(メッセージ)をすべてクリアして新たにキューへの登録を開始する。

呟き定義編集

偽装ちゃん22にテキストが送られてこないまま指定の時間が経過すると呟く機能で使用する、タイミングとメッセージを編集するエディタです。メインウインドウにある呟き制御の編集ボタンを押して表示されます。

発声タイミングを登録し、各タイミング毎に発声させるメッセージ一覧と発声で使用する話者リストを指定します。
話者、メッセージ、はそれぞれランダムに決定されます。

呟き機能を利用するのチェックを外すと、呟き機能は停止します。

タイトル

メインウインドウのタイトルを変更する時はここに変更内容を入力します。

コメントパス

comment.xml を生成するパスを指定します。
生成したcomment.xml はコメントジェネレータで処理できます。

リスナ初期化

次の最新版から不要になると思う。ボタンを押すと、リスナ設定の内容が初期化されます。他の設定は初期化されません。

暗黙の話者指定

各話者リストには、自動で以下の紐付けが実施されています。

声質指定 識別 内容 棒読みちゃんとの互換
0番 話者リストの先頭から1番目の話者に適用される 棒読みちゃん画面上の設定(ボイス0)として扱われる
1番 y 話者リストの先頭から2番目の話者に適用される 女性1 の声質として扱われる
2番 b 話者リストの先頭から3番目の話者に適用される 女性2 の声質として扱われる
3番 h 話者リストの先頭から4番目の話者に適用される 男性1 の声質として扱われる
4番 d 話者リストの先頭から5番目の話者に適用される 男性2 の声質として扱われる
5番 a 話者リストの先頭から6番目の話者に適用される 中性 の声質として扱われる
6番 r 話者リストの先頭から7番目の話者に適用される ロボット の声質として扱われる
7番 t 話者リストの先頭から8番目の話者に適用される 機械1 の声質として扱われる
8番 g 話者リストの先頭から9番目の話者に適用される 機械2 の声質として扱われる

話者リストの登録話者数が足りない場合、割り当てできない指定は全て話者リストの先頭から1番目の話者となります。
テキスト先頭の話者指定ではなく声質指定が行われている場合も同様に話者リストの先頭から割り当てていき、割り当てできない声質の時は1番目の話者となります。

以下の話者リストを利用する場合、

リスナにテキスト “h)今日は天気がよさそうです” を与えるとcid=3003 タカハシ無感情 で発声されます。 “d)“以降はcid=3003 タカハシ クスリやってる!? で発声されます。

以下の話者リストを利用する場合、

リスナに声質指定 2番が指定されるとcid=3103 弦巻マキ (日) で発声されます。 5番以降はcid=3101 さとうささら で発声されます。

拡張リスナのDLL

Ver1.0.12から、規定の形式のDLLをExtendフォルダへコピーして起動すると拡張リスナを追加できるようになりました。 サンプルは 偽装ちゃん22用拡張リスナのサンプルにあります。

他アプリとの連携

自分のアプリから連携

IPC, Socket, HTTP による接続のサンプルは棒読みちゃんに同梱されていますのでそちらをご覧ください。

MultiCommentViewer から使う

MultiCommentViewerの棒読みちゃん連携ではFakeChan22.exeを選択できません。FakeChan22.exeをコピーしてBouyomiChan.exeにリネームします。

NiconamaCommentViewer から使う

NCVは自身で棒読みちゃん(偽装ちゃん)を起動しなかった場合、定期的に棒読みちゃんプロセス存在確認を行っているようです。
BouyomiChan.exeがプロセスに存在しないとコメント読み上げの度に棒読みちゃん(偽装ちゃん)を立ち上げようとします。

FakeChan22.exeをコピーしてBouyomiChan.exeにリネームし、NCVのオプションでこれを指定します。

ツイキャスコメントビューアー(閲覧君) から使う

オプションでソケット通信を選択します。FakeChan22.exeを起動すると読み上げが始まります。

ツイキャスコメントビューアーは棒読みちゃんの話者指定に声質1番(女性1)を指定するようなので、必要なら話者リストに2話者以上を登録してください。

その他

ソースコードはhttps://github.com/k896951/FakeChan22にリポジトリ置いたのでそこを見てください。

documents/tools/tools-207.txt · 最終更新: 2022/09/29 14:56 by k896951