Skip to main content

input_audio_buffer.append

音声データをモデルに送信します。
モデルは音声データを独自の間隔でchunk分割し、先頭から書き起こしていきます。
間隔に満たない端数はSessionにストレージされ、次の本イベントで合わせて処理されます。

例えば、送信音声データが100msで、モデルの分割間隔が80msの場合、先頭80msのみ書き起こしが開始し、 結果が conversation.item.input_audio_transcription.delta で返却され残りの20msはストレージされます。
次の input_audio_buffer.append で100msの音声データが追加されると、 先ほどの20msと新しい音声の先頭60msが結合されて書き起こされ、残り40msがストレージされます。

エンドユーザーがマイクをオフにしたなど、これ以上音声データを送信しない場合は、 input_audio_buffer.commit イベントを送信することでストレージ音声を全て書き起こすことができます。

なお他のClient Eventとは異なり、確認応答となるServer Eventはありません。

event_idstring

このイベントと書き起こし結果を紐付けたい場合に利用可能な任意の文字列。

英数字とアンダースコア(_)およびハイフン(-)の記号のみが利用可能。

conversation.item.input_audio_transcription.delta および conversation.item.input_audio_transcription.completeditem_idに指定値が入る(未指定時はnull)。

ユニークな文字列にすることで追跡が可能になる。重複した値でもエラーは発生せず採用される点に注意。 ※複数のitem_idにまたがった書き起こしの場合は、最後のevent_idが適用されます。

Possible values: <= 36 characters

typestringrequired

固定値

Possible values: [input_audio_buffer.append]

audiostringrequired

音声バイナリをBase64-encodeした値。 音声はtranscription_session.update 時に指定した input_audio_formatinput_audio_sample_rate に従う必要があります。

一度のイベントで8s程度以下の音声データを送信できます。 サイズが大きいほど遅延幅が増幅しますので、可能な限り小さなchunkをストリーミングすることを推奨します。

input_audio_buffer.append
{
"event_id": "random_unique_string",
"type": "input_audio_buffer.append",
"audio": "Base64EncodedAudioData"
}