日本語
設定
TextToAudioStream
の初期化パラメータ
TextToAudioStream
クラスを初期化する際、その動作をカスタマイズするための様々なオプションがあります。利用可能なパラメータは以下の通りです:
engine
(BaseEngine)
- 型: BaseEngine
- 必須: はい
- 説明: テキストから音声への合成を担当する基盤エンジンです。音声合成を有効にするには、
BaseEngine
またはそのサブクラスのインスタンスを提供する必要があります。
on_text_stream_start
(callable)
- 型: 呼び出し可能な関数
- 必須: いいえ
- 説明: テキストストリームが開始されたときにトリガーされるオプションのコールバック関数です。セットアップやログ記録に使用できます。
on_text_stream_stop
(callable)
- 型: 呼び出し可能な関数
- 必須: いいえ
- 説明: テキストストリームが終了したときに実行されるオプションのコールバック関数です。クリーンアップタスクやログ記録に使用できます。
on_audio_stream_start
(callable)
- 型: 呼び出し可能な関数
- 必須: いいえ
- 説明: 音声ストリームが開始されたときに呼び出されるオプションのコールバック関数です。UIの更新やイベントログに役立ちます。
on_audio_stream_stop
(callable)
- 型: 呼び出し可能な関数
- 必須: いいえ
- 説明: 音声ストリームが停止したときに呼び出されるオプションのコールバック関数です。リソースのクリーンアップや後処理タスクに最適です。
on_character
(callable)
- 型: 呼び出し可能な関数
- 必須: いいえ
- 説明: 一文字が処理されるたびに呼び出されるオプションのコールバック関数です。
output_device_index
(int)
- 型: 整数
- 必須: いいえ
- デフォルト値: None
- 説明: 使用する出力デバイスのインデックスを指定します。Noneの場合はデフォルトデバイスを使用します。
tokenizer
(string)
- 型: 文字列
- 必須: いいえ
- デフォルト値: nltk
- 説明: 文分割に使用するトークナイザー(現在は"nltk"と"stanza"がサポートされています)。
language
(string)
- 型: 文字列
- 必須: いいえ
- デフォルト値: en
- 説明: 文分割に使用する言語。
muted
(bool)
- 型: 真偽値
- 必須: いいえ
- デフォルト値: False
- 説明: グローバルなミュートパラメータ。Trueの場合、pyAudioストリームは開かれません。ローカルスピーカーを介した音声再生を無効にし(ファイルへの合成や音声チャンクの処理を行う場合)、playパラメータのミュート設定を上書きします。
level
(int)
- 型: 整数
- 必須: いいえ
- デフォルト値:
logging.WARNING
- 説明: 内部ロガーのログレベルを設定します。Pythonの組み込み
logging
モジュールの任意の整数定数を使用できます。
使用例:
engine = YourEngine() # あなたのエンジンで置き換えてください
stream = TextToAudioStream(
engine=engine,
on_text_stream_start=my_text_start_func,
on_text_stream_stop=my_text_stop_func,
on_audio_stream_start=my_audio_start_func,
on_audio_stream_stop=my_audio_stop_func,
level=logging.INFO
)
```python
engine = YourEngine() # あなたのエンジンに置き換えてください
stream = TextToAudioStream(
engine=engine,
on_text_stream_start=my_text_start_func,
on_text_stream_stop=my_text_stop_func,
on_audio_stream_start=my_audio_start_func,
on_audio_stream_stop=my_audio_stop_func,
level=logging.INFO
)
メソッド
play
とplay_async
これらのメソッドはテキストから音声への合成と音声ストリームの再生を担当します。play
はブロッキング関数である一方、play_async
は別のスレッドで実行され、他の操作を続行できるという違いがあります。
パラメータ:
fast_sentence_fragment
(bool)
- デフォルト値:
True
- 説明:
True
に設定すると、文章の断片をより速く生成して再生することを優先します。レイテンシーが重要なアプリケーションに有用です。
fast_sentence_fragment_allsentences
(bool)
- デフォルト値:
False
- 説明:
True
に設定すると、最初の文だけでなく、すべての文に対して高速な文章断片処理を適用します。
fast_sentence_fragment_allsentences_multiple
(bool)
- デフォルト値:
False
- 説明:
True
に設定すると、単一の文章断片ではなく、複数の文章断片を生成することができます。
buffer_threshold_seconds
(float)
- デフォルト値:
0.0
-
説明: 音声再生の滑らかさと連続性に影響を与えるバッファリングのしきい値を秒単位で指定します。
-
動作原理: 新しい文を合成する前に、システムはバッファに
buffer_threshold_seconds
で指定された時間以上の音声材料が残っているかチェックします。残っている場合、テキストジェネレータから別の文を取得します。これは、バッファに残っている音声の時間枠内で新しい文を取得して合成できると仮定しています。このプロセスにより、テキスト音声変換エンジンがより良い合成のためのコンテキストを持つことができ、ユーザー体験を向上させます。
より高い値を設定すると、より多くの音声がプリバッファされ、再生中の無音や隙間が発生する可能性が減少します。途切れや一時停止が発生する場合は、この値を増やすことを検討してください。
minimum_sentence_length
(int)
- デフォルト値:
10
- 説明: 合成する文として扱う文字列の最小文字数を設定します。これはテキストチャンクの処理と再生方法に影響します。
minimum_first_fragment_length
(int)
- デフォルト値:
10
- 説明: 最初の文章断片を生成する前に必要な最小文字数です。
log_synthesized_text
(bool)
- デフォルト値:
False
- 説明: 有効にすると、音声に合成されるテキストチャンクをログに記録します。監査やデバッグに役立ちます。
reset_generated_text
(bool)
- デフォルト値:
True
- 説明: Trueの場合、処理前に生成されたテキストをリセットします。
output_wavfile
(str)
- デフォルト値:
None
- 説明: 設定すると、指定されたWAVファイルに音声を保存します。
on_sentence_synthesized
(callable)
- デフォルト値:
None
- 説明: 単一の文章断片が合成された後に呼び出されるコールバック関数です。
before_sentence_synthesized
(callable)
- デフォルト値:
None
- 説明: 単一の文章断片が合成される前に呼び出されるコールバック関数です。
on_audio_chunk
(callable)
- デフォルト値:
None
- 説明: 単一の音声チャンクが準備できたときに呼び出されるコールバック関数です。
tokenizer
(str)
- デフォルト値:
"nltk"
- 説明: 文分割に使用するトークナイザーです。現在は"nltk"と"stanza"をサポートしています。
tokenize_sentences
(callable)
- デフォルト値:
None
- 説明: 入力テキストから文を分割するカスタム関数です。nltkやstanzaに満足できない場合、独自の軽量トークナイザーを提供できます。テキストを文字列として受け取り、分割された文を文字列のリストとして返す必要があります。
language
(str)
- デフォルト値:
"en"
- 説明: 文分割に使用する言語です。
context_size
(int)
- デフォルト値:
12
- 説明: 文境界検出のために使用される文字数です。より大きなコンテキストは文境界の検出精度を向上させます。
context_size_look_overhead
(int)
- デフォルト値:
12
- 説明: 文境界を検出する際の先読みのための追加のコンテキストサイズです。
muted
(bool)
- デフォルト値:
False
- 説明: Trueの場合、ローカルスピーカーを介した音声再生を無効にします。ファイルに合成したり、音声チャンクを再生せずに処理したりする場合に有用です。
sentence_fragment_delimiters
(str)
- デフォルト値:
".?!;:,\n…)]}。-"
- 説明: 文の区切り文字として扱われる文字の文字列です。
force_first_fragment_after_words
(int)
- デフォルト値:
15
- 説明: 最初の文章断片を生成する必要がある単語数です。