メインコンテンツまでスキップ

ストリーミング STT

本ガイドでは、ストリーミング音声認識の実装方法を説明します。1) gRPC と 2) WebSocket の 2 つのプロトコルに対応しています。連携方法の詳細は、ストリーミング STT - gRPCストリーミング STT - WebSocketを参照してください。 音声ファイルの文字起こしには、バッチ STTを利用できます。

注意

ストリーミング STT には同時チャネル数の制限があります。詳細はレート制限ポリシーを参照してください。

接続後 60 秒以内にオーディオチャンクが一度も送信されない場合、サーバーがストリーミング接続を終了することがあります。

オーディオエンコーディング(Audio Encoding)

ストリーミング STT は LINEAR16、FLAC、MULAW、ALAW、AMR、AMR_WB、OGG_OPUS、OPUS に対応しています。

注意
  • LINEAR16、MULAW、ALAW、AMR、AMR_WB は生の音声データとして送信してください。
  • OGG_OPUS は OGG コンテナ内の OPUS エンコード済みオーディオフレームとして送信してください。
  • OPUS は gRPC でのみサポートされます。利用を希望する場合はお問い合わせください。

共通 DecoderConfig/Parameter 情報

gRPC と WebSocket で共通して使用する DecoderConfig の詳細は、次の表を参照してください。

名前Type (gRPC / WebSocket)説明必須既定値
sample_rateint範囲: 8000~48000 Hz-
encodingAudioEncoding / stringオーディオエンコーディングを参照-
model_namestring使用する音声認識モデル: sommers_ko(韓国語)、sommers_ja(日本語)、whisper(韓国語向け Fine-tuned、多言語)-sommers_ko
domainstringドメインを参照-CALL
use_itnbool英字・数字・単位の正規化を参照-true
use_disfluency_filterboolフィラーワード除去を参照-false
use_profanity_filterbool不適切語フィルタを参照-false
use_punctuationbool句読点を付与するか-false
keywordsstring[] / stringキーワードブースティングを参照--
languagestringwhisper モデルで使用。音声認識言語を参照-ko

キーワードブースティング(Keywords Boosting)

キーワードブースティングは、ストリーミング STT で特定の単語の認識率を上げたり下げたりする機能です。

注意

現在は sommers_ko モデル、または languageko に設定した whisper モデルでのみ利用できます。

形式と使い方

キーワードと、必要に応じてスコアを指定します。

  • gRPC では string[] 形式で指定します。
  • WebSocket ではカンマ区切りの 1 つの string として指定します。

各キーワードは、次のいずれかの形式で指定してください。

  • "単語": スコアを省略した場合は既定値 2.0 を使用
  • "単語:スコア": 単語とスコアをコロンで区切る

キーワードブースティングのルール

  • 単語: ハングル音節と空白のみ使用できます。
  • スコア:
    • 範囲: -5.0~5.0
    • 正の値は認識率を上げます。
    • 負の値は認識率を下げます。
    • 0 はスコアを適用しません。ただし、一覧に含めるだけでも他のキーワードに影響する場合があるため、ブーストが不要なキーワードは削除してください。

// gRPC
["부스팅", "리턴제로:3.5", "에스티티:-1"]

// WebSocket
"부스팅,리턴제로:3.5,에스티티:-1"
注意
  • スコアは -5.0~5.0 の範囲で指定してください。
  • 単語は韓国語の発音どおりに記述してください。たとえば、STT ではなく 에스티티 を使用します。
  • 単語にはハングル音節と空白のみ使用できます。
  • 各単語は 20 文字以内、最大 100 語まで指定できます。
  • 短いキーワードで始まる長い単語を同時に登録すると、短いキーワードのブースト効果が下がる場合があります。たとえば、커피 と 커피숍 を同時に登録した場合です。

音声エージェント(AI Voice Agent)

AI Voice Agent やコールボットが独自の VAD または turn detector でユーザーの発話終了を判断した場合、FINALIZE コマンドで現在の発話を確定できます。サーバー側の end-point detection を待たずに final transcript を受け取り、次の応答生成をより早く開始できます。

FINALIZE はストリーミング接続を終了しません。final transcript を受信した後も、同じ接続で次のユーザーターンのオーディオを送信できます。セッションを終了するには、gRPC のリクエストストリームを half-close するか、WebSocket でテキストメッセージ EOS を送信します。空の発話や連続した FINALIZE は結果を生成しません。プロトコル別のリクエスト例は、gRPCWebSocketを参照してください。

注意

OGG_OPUS のようなコンテナベースのエンコーディングでは、FINALIZE 後の次の発話を、新しいコンテナヘッダーを含む独立したストリームとして開始してください。

ドメイン(Domain)

ドメインは、ユーザーの音声入力環境に合わせて STT モデルを最適化するために使用します。

対応ドメイン

  • CALL(既定値): 電話通話や、マイクが話者の口元に近い環境向けに最適化されています。
    • 近くの話者の音声を明瞭に認識します。
    • 周囲の雑音や他の話者の音声混入を抑えます。
    • 電話通話、個人用ヘッドセット、近接マイクに適しています。
  • MEETING: 会議室など、話者から離れたマイクで収音する環境向けに最適化されています。
    • 複数話者の音声を処理します。
    • 会議室や公共空間などの遠距離収音に適しています。

実際の音声入力環境に合わせてドメインを選択してください。