目次
偽装ちゃん22の説明
偽装ちゃん22は現在メンテナスを行っていません。
偽装ちゃん22vの利用をご検討ください。
概要
棒読みちゃんのフリをするアプリケーション「偽装ちゃん(FakeChan22)」です。
棒読みちゃんを使うアプリケーション(IPC,Socket,HTTP経由)から利用します。
コメントビュアーなどのアプリ ➡ 偽装ちゃん22 ➡ AssistantSeika ➡ 音声合成製品
棒読みちゃんを停止して偽装ちゃん22を実行すれば、棒読みちゃんから呼び出せなかった64bit版の音声合成製品を呼び出せます。
偽装ちゃん22自身は音声合成を行いません。AssistantSeika経由で音声合成製品に音声合成を指示します。
構造上、棒読みちゃんと偽装ちゃん22は同時に実行できません。
ただし、棒読みちゃんβ版を利用するのであれば同時実行が可能になります。偽装ちゃん22ではなく偽装ちゃん用の説明ではありますが偽装ちゃんと棒読みちゃんの同時利用例 を参照してください。
ダウンロード
使用しているサードパーティ製品
assemblyをまとめる目的で Costura.Fody を利用しています。
- バージョン 5.7.0 作成者 geertvanhorrik,simoncropp ライセンス https://licenses.nuget.org/MIT
Costura.Fody の依存関係により Fody を利用しています。
- バージョン 6.6.3 作成者 Fody ライセンス https://www.nuget.org/packages/Fody/6.6.3/license
依存関係によりMicrosoftのライブラリを利用しています。
ライセンスが
のものがあります。
- Microsoft.NETCore.Platforms 7.0.0
- NETStandard.Library 2.0.3
- System.Buffers 4.5.1
- System.Memory 4.5.5
- System.Numerics.Vectors 4.5.0
- System.Runtime.CompilerServices.Unsafe 6.0.0
準備
このツールはAssistantSeikaが必須です。
先にAssistantSeika バージョン 20211204/u 以降をダウンロード、インストールしてください。
インストールが終わったら、使いたい音声合成製品とAssistantSeikaを起動し、AssistantSeikaが音声合成製品を認識している状態にしてください。
棒読みちゃんが立ち上がっていたらそちらは終了させてください。
偽装ちゃん22の初期化
新しい版にしたら起動しなくなった、何かの拍子に起動できなくなった、といった場合、偽装ちゃん22の初期化で解決する可能性があります。
- 偽装ちゃん22を停止します。
- 偽装ちゃん22と同じフォルダにある FakeChan22.conf を削除します。
- 偽装ちゃん22を起動します。
古い版の場合
- 偽装ちゃん22を停止します。
- エクスプローラーで次のフォルダを開きます。
C:\Users\<ユーザアカウント>\AppData\Local\FakeChan22 - フォルダ内にある “FakeChan22.exe_”から始まる名称のフォルダをすべて削除します。
- 偽装ちゃん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に送られてきたテキストの置換を行うための定義を行うエディタです。メインウインドウにある定義リストの追加,編集のボタンを押して表示されます。
置換リスト定義編集ウインドウ左端の一覧は、処理と処理の順序を示しています。
一覧の先頭から順番に「実行」にチェックの入った処理を実行します。一覧の上部にある移動ボタンで選択した処理の順番を変更する事が出来ます。
置換リスト定義名にはデフォルトの名称が設定されています。目的や用途が明確な名前に変更してください。同じ置換リスト定義名で置換リスト定義を複数登録できますが、管理が面倒になるのでお勧めしません。
話者指定検出
「実行」にチェックが入り、「適用」にチェックが入っていると、テキスト先頭の社者指定記述(全て半角の文字)を検出して使用するようになります。例えば
y5)コンバンワ
は “y5)” と “コンバンワ” に分離され、“y5)“と紐づけられた話者で”コンバンワ”を発声させることになります。
「補正」にチェックが入っていると、全角記述を許容するようになります。
URL置換
「実行」にチェックが入っていると、テキスト中のURLと推測される個所を指定の文字列で置換します。この例だと、
検索エンジンはこちら https://www.google.com
は
検索エンジンはこちら URL省略
と変換されます。
w変換
「実行」にチェックが入っていると、テキスト中の連続した「w」や、おそらく「笑」の意であろう「w」を「わら」に変換します。
8変換
「実行」にチェックが入っていると、テキスト中の連続した「8」を「パチ」に変換します。
絵文字置換
「実行」にチェックが入っていると、テキスト中の絵文字で可能な場合は通常テキスト表記に変換します。例えば
開店時間は🕥です!
は
開店時間は10時半です!
と変換されます。
絵文字除去
「実行」にチェックが入っていると、テキスト中の絵文字を除去します。例えば
拍手~👏👏
は
拍手~
と変換されます。
全角英字記号変換
「実行」にチェックが入っていると、テキスト中の全角英字記号を半角に変換します。例えば
YAHOO!?
は
YAHOO!?
と変換されます。
全角数字変換
「実行」にチェックが入っていると、テキスト中の全角数字を半角に変換します。例えば
3141592
は
3141592
と変換されます。アラビア数値のみの処理なので注意してください。
テキスト置換
「実行」にチェックが入っていると、置換処理の定義に従ってテキストの置換を行います。
追加ボタンを押すと置換定義が追加されます。
並びの変更は、置換定義を選択してから↑移動ボタン、↓移動ボタンを使ってください。
削除で選択した置換定義を削除します。
適用のチェックを外すと置換定義リストにあっても利用されない置換定義となります。
置換リストは目的によって複数作成できます。テキストの「ですます調」を「である調」にする置換、特定のライブ配信で補正する必要があるキーワードの置換、の様に複数作成できます。もちろん一つのリストにすべて登録しても構いません。
マッチングパターン、置換内容には、Microsoft .NET Framework の正規表現を適用できます。
マッチングパターン | 置換内容 | 置換前 | 置換結果 |
---|---|---|---|
沙花叉 | さかまた | 沙花叉クロヱ | さかまたクロヱ |
^(.+)[GgGg][JjJj]$ | グッジョブが送られました:$1 | よくやった!GJ | グッジョブが送られました:よくやった! |
名前の読みが難しそうな場合に登録して対応する等に利用できます。リストの先頭から順に適用していきます。
切捨て
「実行」にチェックが入っていると、先頭から「最大長」の文字数だけ選択して以降の文字を切捨てします。
その後に「追加文字列」で指定する文字列を追加します。例えば最大長を8とした場合
3.141592653
は
3.141592(以下略
と変換されます。
変換テスト
テキストを入力して一覧の各処理の処理結果を確認する事が出来ます。
その他
- テキストの内容から話者を処理「テキスト置換」で指定する時は、処理「話者指定検出」よりも先に実行してください。
処理「話者指定検出」の後に処理「テキスト置換」を使ってテキスト先頭に話者指定の文字を追加しても有効になりません。 - 非日本語話者で使用する場合、処理「全角英字記号変換」と処理「全角数字置換」を実行して全角文字を変換しておくと発声失敗が少なくなります。
- A.I.VOICEやVOICEROID+EX、VOICEROID2では絵文字が含まれていると動作がおかしくなる場合があります。処理「絵文字除去」で絵文字を消し込んでおくと良いかもしれません。
- 非日本語判定は、一覧の処理実行前に実施されています。この処理で変更する事はできません。
- 非日本語判定時に使用する置換リスト定義では、処理「w変換」「8変換」を利用しないほうが良いです。「わら」「パチ」の文字が埋め込まれてしまうため発声に失敗する可能性があります。
リスナインタフェース設定
偽装ちゃん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の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話者以上を登録してください。