mike_tools

コマンド文字列と WAV ファイルのマッピング管理、 および音声合成・ユーティリティ機能を提供します。

mike.mike_tools.errmsg(e)

例外情報を詳細にフォーマットして出力します。

例外クラス名、メッセージ、スタックトレースを整形して出力します。

Parameters:

e (Exception) – 発生した例外

mike.mike_tools.get_wav_file(command, csv_file='config/communication.csv')

コマンド文字列に基づいて対応する WAV ファイル名を取得します。

CSV ファイルから読み込み、受信コマンドが CSV に登録されたコマンドで始まるかチェックします。 マッチした場合、対応するWAVファイルパスを返します。

【マッピング仕様】 CSV ファイルの想定構成: - 1列目(index 0):未使用 - 2列目(index 1):コマンド文字列 - … - 5列目(index 4):WAV ファイル名(拡張子なし) - 6列目(index 5):言語設定

【例】 CSV: “1,ねえミケ,ja-JP,ja-JP,preamble,ja-JP” → get_wav_file(“ねえミケ”) → (“snd/preamble.wav”, “ja-JP”)

Parameters:
  • command (str) – マッチングするコマンド文字列

  • csv_file (str) – コマンド↔WAV マッピング CSV ファイルのパス(デフォルト: config/communication.csv)

Returns:

(WAVファイルのパス, 言語設定)のタプル、マッチなし時は(None, “None”)

Return type:

tuple

mike.mike_tools.read_wav_file(file_path)

WAV ファイルをバイナリで読み込みます。

サーバから受信した音声 WAV をメモリに読み込みます。 ファイル I/O エラーハンドリングを行います。

Parameters:

file_path (str) – 読み込む WAV ファイルのパス(相対パスまたは絶対パス)

Returns:

WAVファイルのバイナリデータ、読み込み失敗時は None

Return type:

bytes or None

mike.mike_tools.synthesize_speech(voice_handler: VoiceVoxHandler, text: str, speaker_id: int | None = None) str

テキストを音声に合成し、WAV ファイルパスを返します。

VOICEVOX または OpenJTalk を使用してテキストを音声に変換します。

Parameters:
  • text (str) – 合成対象のテキスト

  • speaker_id (int, optional) – スピーカーID(デフォルト: 設定ファイルから取得)

Returns:

生成されたWAVファイルのパス

Return type:

str

Raises:

Exception – 音声合成に失敗した場合

mike.mike_tools.urlPerse(url: str)

URLを解析し、ホスト名、ポート番号、トランスポートを抽出します。

URLの形式に基づいてトランスポート方式を判定します: - “/mcp” → http - “/scp” → scp - その他 → stdio

Parameters:

url (str) – 解析対象のURL(例: “http://mike-server:8000/mcp”)

Returns:

(ホスト名, ポート番号, トランスポート)のタプル

Return type:

tuple