# ASRClient

**機能**：音声認識クライアントの機能を実現し、WebSocket を通じてサーバーと通信を行い、リアルタイムで音声データを送信し、認識結果を受信します。録音の開始／停止を行うインタラクティブなボタンを提供し、対応するイベントを発生させます。

**タイプ**：通常コントロール  
**親クラス**：`bricks.VBox`

## 初期化パラメータ

- `start_icon` (String, オプション)  
  録音開始時のアイコンパス。デフォルトは `imgs/start_recording.svg`。

- `stop_icon` (String, オプション)  
  録音停止時のアイコンパス。デフォルトは `imgs/stop_recording.svg`。

- `ws_url` (String, 必須)  
  WebSocket サービスのアドレス。音声認識バックエンドとの接続に使用されます。

- `icon_options` (Object, オプション)  
  アイコンコントロールの設定オプション。`bricks.Svg` インスタンスに渡され、アイコンの表示スタイルをカスタマイズできます。

- `ws_params` (Object, オプション)  
  WebSocket サーバーに送信する追加パラメータ。音声データ送信時に併せて使用されます。

## 主なイベント

- `start`  
  **発生タイミング**：ユーザーがアイコンをクリックして録音を開始したとき。  
  **パラメータ**：なし  

- `stop`  
  **発生タイミング**：ユーザーがアイコンをクリックして録音を停止したとき。  
  **パラメータ**：なし  

- `transtext`  
  **発生タイミング**：サーバーから音声認識結果を受信したとき。  
  **パラメータ**：
  ```json
  {
    "content": "認識されたテキスト内容",
    "speaker": "話者識別（サポートされている場合）",
    "start": "当該音声の開始タイムスタンプ",
    "end": "当該音声の終了タイムスタンプ"
  }
  ```
  **説明**：このイベントは、`response_data` メソッドがサーバーからのメッセージを解析した後に送出され、上位のコンポーネントが認識結果を処理できるようにします。