カテゴリ:

:doc:`/sql-reference/functions-file`(AI 関数)

AI_TRANSCRIBE

オプションのタイムスタンプと話者ラベルを使用して、音声ファイルからテキストを文字起こしします。AI_TRANSCRIBE は 多数の言語 をサポートし、音声には複数の言語が含まれるようにすることができます。タイムスタンプと話者ラベルは、以下のテーブルに示すように、指定されたタイムスタンプの粒度に基づいて抽出されます。

タイムスタンプの粒度

結果

デフォルト

音声ファイル全体を1部分に文字起こし

単語

各単語にタイムスタンプが付加された文字起こし

話者

話者が変更されるたびに、誰が話しているか、およびタイムスタンプを示します

構文

AI_TRANSCRIBE( <audio_file> [ , <options> ] )
Copy

引数

必須:

audio_file

音声ファイルを表す FILE 型のオブジェクト。TO_FILE 関数 を使用して、ステージングされたファイルへの参照を作成します。

オプション:

options

次のフィールドの0個以上を含む OBJECT 値

  • timestamp_granularity:タイムスタンプの必要な粒度を指定する文字列。可能な値は次のとおりです。

    • "word":ファイルは、それぞれにタイムスタンプが付加された一連の単語として文字起こしされます。

    • "speaker":ファイルは、それぞれに独自のタイムスタンプと話者ラベルが付加された、一連の会話の「ターン」として文字起こしされます。

    このフィールドが指定されていない場合、ファイル全体はデフォルトでタイムスタンプが付加されていない単一のセグメントとして文字起こしされます。

戻り値

文字起こし結果の JSON 表現を含む文字列。JSON オブジェクトには、次のフィールドが含まれています。

  • "audio_duration":音声ファイルの合計時間(秒単位)。

  • "text":timestamp_granularity フィールドが指定されていない場合に実施される音声ファイル全体の文字起こし。

  • "segments":timestamp_granularity フィールドが "word" または "speaker" に設定されている場合に提供されるセグメントの配列。各セグメントは次のフィールドを含む JSON オブジェクトです。

    • "start":セグメントの開始時刻(秒単位)。

    • "end":セグメントの終了時刻(秒単位)。

    • "text":セグメントの文字起こしテキスト。

    • "speaker_label":timestamp_granularity フィールドが speaker に設定されている場合に付与されるセグメントの話者のラベル。ラベルは、「SPEAKER_00」、「SPEAKER_01」などの形式であり、音声ファイルで話者が検出された順番に割り当てられます。

アクセス制御の要件

ユーザーは、 SNOWFLAKE.CORTEX_USER データベースロール が付与されているロールを使用する必要があります。このロールの詳細については 必要な権限 をご参照ください。

使用上の注意

  • AI_TRANSCRIBE は次の言語をサポートしています。

    • アラビア語

    • ブルガリア語

    • 広東語

    • カタロニア語

    • 中国語

    • チェコ語

    • オランダ語

    • 英語

    • フランス語

    • ドイツ語

    • ギリシャ語

    • ハンガリー語

    • インドネシア語

    • イタリア語

    • 日本語

    • 韓国語

    • ラトビア語

    • ポーランド語

    • ポルトガル語

    • ルーマニア語

    • ロシア語

    • セルビア語

    • スロベニア語

    • スペイン語

    • スウェーデン語

    • タイ

    • トルコ語

    • ウクライナ語

    サポート対象の言語は自動的に検出されます。正確な言語検出のために、音声はファイルの最初の5秒以内に始まる必要があります。

  • 次の音声形式がサポートされています。サンプルレート、ビット深度、チャネル数などの要因は、文字起こしに影響しませんが、ロスレスや非圧縮形式の場合に、これらの要因によってファイルのサイズが過剰に大きくなり処理が不可能になる可能性があります。 内部的には、AI_TRANSCRIBE は16 KHz の単調の音声を使用し、必要に応じて入力ファイルをこの形式に変換します。

    • FLAC

    • MP3

    • Ogg

    • WAV

    • WebM

  • 音声ファイルの最大サイズは700 MB です。

  • タイムスタンプの粒度が「単語」または「話者」に設定されている場合、音声ファイルの最大時間は60分です。タイムスタンプの粒度が使用されない場合、最大時間は120分です。

例については、AI 音声例 をご参照ください。

トラブルシューティング

この関数が失敗した場合は、エラー応答を返します。一般的なエラーメッセージには次のものがあります。

エラーメッセージ

状況と解決策

無効なオプションオブジェクト

timestamp_granularity フィールドに対して用意されているオプションがある場合は、「単語」または「話者」であることが必要です。

サーバーからの応答がありません

音声ファイルを取得できません。原因はおそらく期限切れのスコープが設定されている URL です。

ファイルサイズが大きすぎます。最大サイズは734,003,200バイトであり、ファイルがこの制限を超えています。

提供された音声ファイルが最大ファイルサイズを超えています。

無効なファイル形式。['flake', 'mp3', 'ogg', 'vav', 'webm'] ファイルのみがサポートされています。または WebM ファイルに音声ストリームが含まれていません。

音声ファイルが、エラーメッセージにリストされているサポート対象形式の一つではありません。WebM ファイルは複数のメディアタイプをサポートしているため、ファイルに音声ストリームが含まれていることを確認してください。ファイルがサポートされている形式である場合は、破損していないことを確認します。

16000ヘルツに再サンプリングした後、ファイルは過剰に大きなサイズになります。予想されるサイズは3,355,444,448,000.0バイトです。

提供された音声ファイルを16 KHz に再サンプリングした後のサイズが大きすぎます。提供された音声のサンプルレートが低い場合は、再サンプリングされた際のサイズが元のサイズよりも大きくなり、最大許容ファイルサイズを超える可能性があります。

長すぎる音声時間:6052.10 秒。最大許容時間:3600秒。または長すぎる音声時間:7335.28 秒。最大許容時間:7200 秒。

提供された音声ファイルが長すぎます。タイムスタンプの粒度を使用している場合、最大時間は60分(3600秒)です。

検出されたサポート対象外の言語

音声ファイルに AI_TRANSCRIBE でサポートされていない言語が含まれています。

リージョンの可用性

AI_TRANSCRIBE は以下のリージョンで利用できます。

  • AWS US 西部2(オレゴン州)

  • AWS US 東部1(北部バージニア)

  • AWS EU 中部1(フランクフルト)

  • Azure東 US 2(バージニア)

制限事項

Snowflake Cortex関数は動的テーブルをサポートしていません。