"""
Windows TTS (pyttsx3) を使用した音声合成のサンプルスクリプト。

このスクリプトは、`pyttsx3` ライブラリを介してWindowsの音声合成機能を利用し、
指定されたテキストを音声ファイル (WAV形式) に変換します。
コマンドライン引数によって異なる動作を実行できます。

**使用方法:**

*   **利用可能な音声の一覧表示:**
    ::

        python sample_pyttsx3.py list

    現在システムにインストールされている利用可能な音声エンジンと音声名を一覧表示します。

*   **デフォルト音声 (Haruka) でテキストを読み上げ:**
    ::

        python sample_pyttsx3.py

    定義済みのテキストをデフォルトの「Haruka」音声で読み上げ、
    ``sample_windows_tts.wav`` ファイルとして保存します。

*   **指定した音声でテキストを読み上げ:**
    ::

        python sample_pyttsx3.py <voice_name>

    `<voice_name>` で指定された音声を使用してテキストを読み上げ、
    ``sample_windows_tts.wav`` ファイルとして保存します。
    例えば、「Zira」や「Haruka」などを指定できます。

このスクリプトは `tktts_pyttsx3` モジュールに依存しています。
音声合成の結果は常に ``sample_windows_tts.wav`` として出力されます。

:doc:`sample_pyttsx3_usage`
"""

import sys
import tktts_pyttsx3


# ------------------------------------------------------------
# 利用可能な音声を表示
# ------------------------------------------------------------
if len(sys.argv) >= 2 and sys.argv[1].lower() == "list":
    tktts_pyttsx3.list_available_voices()
    sys.exit()


# ------------------------------------------------------------
# 音声を指定
# ------------------------------------------------------------
if len(sys.argv) >= 2:
    voice = sys.argv[1]
else:
    voice = "Haruka"


# ------------------------------------------------------------
# 読み上げる文章
# ------------------------------------------------------------
text = """
こんにちは。
これは Windows の音声合成機能を使ったサンプルです。
Pythonから簡単に文章を読み上げることができます。
"""


# ------------------------------------------------------------
# 音声を生成
# ------------------------------------------------------------
tktts_pyttsx3.speak(
    outfile="sample_windows_tts.wav",
    text=text,
    voice=voice,
    speak_rate=150,
)

print("sample_windows_tts.wav を作成しました。")