tktts_voicevox プログラム仕様
tktts_voicevox.py - tktts用のVOICEVOXエンジン統合モジュール
このモジュールは、VOICEVOX REST APIを通じて音声合成を行う機能を提供します。 VOICEVOXエンジンと連携し、利用可能な話者の取得、テキストの音声合成、 およびダイアログ形式のテキスト処理に対応しています。
関連リンク: tktts_voicevox.py ライブラリ技術ドキュメント
- ai.tktts_voicevox.get_available_voices(endpoint='http://127.0.0.1:50021')[ソース]
利用可能なVOICEVOX話者のフルネーム(名前とスタイル)のリストを取得します。
- 詳細説明:
get_available_voices_info 関数を呼び出して詳細な話者情報を取得し、 それらを「話者名(スタイル名)」の形式の文字列リストに変換します。
- パラメータ:
endpoint -- str: VOICEVOXエンジンのAPIエンドポイントURL。
- 戻り値:
list[str] or bool: 利用可能な話者名のリスト。話者が見つからない場合はFalse。
- ai.tktts_voicevox.get_available_voices_info(endpoint='http://127.0.0.1:50021')[ソース]
VOICEVOXエンジンから利用可能な話者情報(名前、スタイル、ID)のリストを取得します。
- 詳細説明:
VOICEVOXエンジンの /speakers エンドポイントにGETリクエストを送信し、その応答をJSON形式で解析します。 各話者のスタイル情報も抽出して、扱いやすい辞書のリストとして返します。
- パラメータ:
endpoint -- str: VOICEVOXエンジンのAPIエンドポイントURL。
- 戻り値:
list[dict]: 話者情報を含む辞書のリスト。各辞書は'name', 'style', 'id'キーを持ちます。
- ai.tktts_voicevox.list_available_voices(endpoint='http://127.0.0.1:50021')[ソース]
利用可能なVOICEVOX話者の一覧をコンソールに表示します。
- 詳細説明:
get_available_voices_info 関数を使用して話者情報を取得し、 話者の名前、スタイル、IDを整形して標準出力に表示します。
- パラメータ:
endpoint -- str: VOICEVOXエンジンのAPIエンドポイントURL。
- 戻り値:
bool: 話者の一覧表示が成功した場合はTrue、話者が見つからない場合はFalse。
- ai.tktts_voicevox.resolve_speaker_id(speaker_name, endpoint='http://127.0.0.1:50021', speakers_dict=None)[ソース]
話者名からVOICEVOXのspeaker_idを解決します。
- 詳細説明:
渡された`speaker_name`(フルネームまたは部分文字列)に一致する最初の話者のspeaker_idを検索して返します。 大文字小文字を区別しない検索を行います。`speakers_dict`がNoneの場合、 `get_available_voices_info`を呼び出して話者情報を取得します。
- パラメータ:
speaker_name -- str: 検索する話者の名前またはスタイルの一部。
endpoint -- str: VOICEVOXエンジンのAPIエンドポイントURL。
speakers_dict -- list[dict] or None: 事前に取得した話者情報の辞書リスト。Noneの場合、内部で取得します。
- 戻り値:
tuple[list[dict], int]: 更新された話者情報の辞書リストと、見つかったspeaker_id。
- 例外:
ValueError -- 指定された話者が見つからない場合。
- ai.tktts_voicevox.speak(outfile, text, voice, speak_rate=None, speak_pitch=None, endpoint='http://127.0.0.1:50021')[ソース]
指定されたテキストをVOICEVOXエンジンで音声合成し、WAVファイルとして保存します。
- 詳細説明:
まず`/audio_query`エンドポイントで音声合成クエリを作成し、 そのクエリに対して話速(speedScale)や音高(pitchScale)を適用します。 次に`/synthesis`エンドポイントで実際の音声データを生成し、 指定されたファイルパスにバイナリ形式で書き込みます。
- パラメータ:
outfile -- str: 音声データが保存されるファイルパス。
text -- str: 合成するテキスト。
voice -- int: 使用するVOICEVOX話者のspeaker_id。
speak_rate -- float or None: 音声の再生速度スケール。Noneの場合はデフォルト値を使用。
speak_pitch -- float or None: 音声のピッチスケール。Noneの場合はデフォルト値を使用。
endpoint -- str: VOICEVOXエンジンのAPIエンドポイントURL。
- 戻り値:
str or None: 保存されたファイルパス。エラーが発生した場合はNone。
- ai.tktts_voicevox.speak_dialogue(dialogue, replacements, target_voices, speakers={}, temp_dir='.', outfile=None, ext='wav', endpoint='http://127.0.0.1:50021', cfg=None)[ソース]
ダイアログリストの各セグメントをVOICEVOXで音声合成し、一時ファイルに保存します。
- 詳細説明:
入力された`dialogue`(通常は複数の会話セグメントのリスト)を`split_dialogue`関数で個々の発言に分割します。 各発言について、話者名からspeaker_idを解決し、`speak`関数を呼び出して音声合成を行います。 生成された一時ファイルのパスをリストとして返します。 `target_voices`が文字列の場合、全てのセグメントでその話者が強制的に使用されます。
- パラメータ:
dialogue -- list[str]: 会話テキストのリスト。
replacements -- dict: テキスト置換ルールを定義する辞書。
target_voices -- str or list[str]: 使用する話者。文字列の場合、全てのセグメントでその話者が強制されます。リストの場合、`split_dialogue`が話者を決定します。
speakers -- dict: 話者ごとの追加設定を含む辞書。
temp_dir -- str: 一時ファイルを保存するディレクトリパス。
outfile -- str or None: 最終的な出力ファイルパス(保存モードの場合)。Noneの場合、一時ファイルを生成します。
ext -- str: 生成される音声ファイルの拡張子(例: 'wav')。
endpoint -- str: VOICEVOXエンジンのAPIエンドポイントURL。
cfg -- object or None: 設定オブジェクト。`fspeak_rate`や`fspeak_pitch`などの属性を持つ場合があります。
- 戻り値:
tuple[bool, list[str]]: 処理が成功したかを示す真偽値と、生成された一時ファイルのパスリスト。