38 lines
2.4 KiB
Markdown
38 lines
2.4 KiB
Markdown
# StreamAudio
|
||
|
||
**コントロール機能**:音声ストリームのリアルタイム収集、音声活動検出(VAD)によるトリガー、音声のアップロード、およびサーバーから返される認識テキスト結果の受信を実現します。主に音声認識のシナリオで使用されます。
|
||
**タイプ**:コンテナーコントロール
|
||
**親クラスコントロール**:bricks.VBox
|
||
|
||
## 初期化パラメータ
|
||
|
||
- `opts` {Object} - 設定オプションオブジェクト。VBoxから継承し、以下のプロパティを拡張:
|
||
- `name` {string} (任意) - コントロール名。デフォルトは `'asr_text'`。
|
||
- `height` {string} - 固定値 `'100%'`。上書き不可。
|
||
- その他のVBoxがサポートする汎用パラメータ(例:layoutなど)。
|
||
|
||
> 注意:コンストラクタ内では自動的に `height='100%'` とデフォルトの `name` が設定され、内部のサブコントロール(ボタン、フィラー、テキスト表示など)が作成されます。
|
||
|
||
## 主なイベント
|
||
|
||
直接外部に公開されるカスタムイベントはありませんが、バインドとコールバック機構を通じて以下の動作を処理しています:
|
||
|
||
- **ボタンクリックイベント**:内部の `this.button` に `click` イベントがバインドされ、`toggle_status()` メソッドを呼び出します。これにより、音声ストリームの収録を開始または停止します。
|
||
- **音声終了イベント**:`vad.MicVAD` の `onSpeechEnd(audio)` コールバックによってトリガーされ、`handle_audio(audio)` を呼び出して音声データをエンコードして送信します。
|
||
- **データ受信イベント**:`receive_data()` 内で `reader.readline()` を使用してサーバーからのレスポンスストリームを継続的に読み取り、JSONデータを1件受信するごとに表示テキストを更新します。
|
||
|
||
---
|
||
|
||
# ASRText
|
||
|
||
**コントロール機能**:`StreamAudio` と完全に同一。意味的に音声認識テキスト出力コンポーネントを明確に示すためのエイリアスコントロールです。
|
||
**タイプ**:コンテナーコントロール
|
||
**親クラスコントロール**:bricks.VBox(実際の継承関係はStreamAudioと同じ)
|
||
|
||
## 初期化パラメータ
|
||
|
||
`StreamAudio` と同じ。
|
||
|
||
## 主なイベント
|
||
|
||
`StreamAudio` と同じ。 |