Skip to main content

Fun-ASR non-real-time speech recognition Java SDK

このトピックでは、Fun-ASR 非リアルタイム音声認識 Java SDK のパラメーターと API の詳細について説明します。

サポートされている音声フォーマット、ファイルサイズの制限、持続時間の制限などの入力要件については、「音声仕様」をご参照ください。

前提条件

クイックスタート

コアクラス (Transcription) は、タスクを非同期で送信し、タスクが完了するまで同期的に待機し、タスク結果を非同期でクエリするためのインターフェイスを提供します。非リアルタイム音声認識は、次の 2 つの方法のいずれかで実行できます。
  • タスクの非同期送信と同期的な完了待機:タスクを送信すると、現在のスレッドはタスクが完了して認識結果が返されるまでブロックされます。
  • タスクの非同期送信とタスク結果の非同期クエリ:タスクを送信した後、必要なときにクエリインターフェイスを呼び出してタスク結果を取得します。
  • タスクの非同期送信と同期的な完了待機
  • タスクの非同期送信とタスク結果の非同期クエリ
タスクを送信して完了を待機
  1. リクエストパラメーターを設定します。
  2. コアクラス (Transcription) をインスタンス化します。
  3. コアクラス (Transcription) の asyncCall メソッドを呼び出して、タスクを非同期で送信します。
    • ファイル文字起こしサービスは、API を通じて送信されたタスクをベストエフォート方式で処理します。タスクを送信すると、キュー登録済み (PENDING) 状態になります。キューイング時間はキューの長さとファイルの持続時間に依存するため、正確には言えませんが、通常は数分以内です。処理が開始されると、音声認識はリアルタイムの数百倍の速度で完了します。
    • 各タスクが完了した後、認識結果とダウンロード URL は 24 時間有効です。有効期限が切れると、以前のクエリで返された URL を通じてタスクをクエリしたり、結果をダウンロードしたりすることはできなくなります。
  4. コアクラス (Transcription) の wait メソッドを呼び出して、タスクが完了するまで同期的に待機します。 タスクの状態には、PENDING、RUNNING、SUCCEEDED、または FAILED があります。タスクが PENDING または RUNNING 状態の間、wait インターフェイスはブロックします。タスクが SUCCEEDED または FAILED 状態に達すると、wait インターフェイスはブロックを停止し、タスク結果を返します。 wait は タスク結果 (TranscriptionResult) を返します。
import com.alibaba.dashscope.audio.asr.transcription.*;
import com.alibaba.dashscope.utils.Constants;
import com.google.gson.*;

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        // 以下はシンガポールリージョンの設定です。呼び出す際に、"{WorkspaceId}" を実際のワークスペース ID に置き換えてください。リージョンごとに設定は異なります。
        Constants.baseHttpApiUrl = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
        // 文字起こしリクエストのパラメーターを作成
        TranscriptionParam param =
                TranscriptionParam.builder()
                        // API キーはシンガポールリージョンと北京リージョンで異なります。API キーの取得:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
                        // 環境変数を設定していない場合は、次の行を Model Studio の API キーに置き換えてください:.apiKey("sk-xxx")
                        //.apiKey("apikey")
                        .model("fun-asr") // ここでは fun-asr を例として使用します。必要に応じてモデル名を変更してください。モデルリスト:https://www.alibabacloud.com/help/zh/model-studio/models
                        .fileUrls(
                                Arrays.asList(
                                        "{YOUR_AUDIO_URL}"))
                        .build();
        try {
            Transcription transcription = new Transcription();
            // 文字起こしリクエストを送信
            TranscriptionResult result = transcription.asyncCall(param);
            System.out.println("RequestId: " + result.getRequestId());
            // タスクが完了するまでブロックして待機し、結果を取得
            result = transcription.wait(
                    TranscriptionQueryParam.FromTranscriptionParam(param, result.getTaskId()));
            // 結果を出力
            System.out.println(new GsonBuilder().setPrettyPrinting().create().toJson(result.getOutput()));
        } catch (Exception e) {
            System.out.println("error: " + e);
        }
        System.exit(0);
    }
}

エンドポイント

デフォルトでは、SDK は中国 (北京) リージョンのエンドポイントを使用します。他のリージョンに切り替えるには、初期化の前に Constants.baseHttpApiUrl を変更します。
  • シンガポール
  • 中国 (北京)
https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1呼び出しを行う際に、{WorkspaceId} を実際の ワークスペース ID に置き換えてください。
Alibaba Cloud Model Studio は、中国 (北京) およびシンガポールリージョン向けにワークスペース固有のドメインをリリースしました。新しい専用ドメインは、推論リクエストに対して優れたパフォーマンスと高い安定性を提供します。新しいドメインへの移行を推奨します:
  • 中国 (北京):dashscope.aliyuncs.com から {WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • シンガポール:dashscope-intl.aliyuncs.com から {WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
注:
  • API キーはリージョンごとに異なります。対象リージョンの API キーを使用していることを確認してください。
  • リージョン設定はグローバルであり、すべての DashScope SDK の API 呼び出しに影響します。

リクエストパラメーター

TranscriptionParam のチェーンメソッドを使用してリクエストパラメーターを設定します。
TranscriptionParam param = TranscriptionParam.builder()
  .model("fun-asr")
  .fileUrls(
          Arrays.asList(
                  "{YOUR_AUDIO_URL}"))
  .build();
パラメータータイプ必須説明
modelStringはいモデル名。
fileUrlsList<String>はい文字起こしする音声または動画ファイルの URL のリスト。HTTP と HTTPS がサポートされています。1 回のリクエストでサポートされる URL は 1 つだけです。サポートされている音声フォーマット、ファイルサイズの制限、持続時間の制限などの入力要件については、「音声仕様」をご参照ください。録音が Alibaba Cloud OSS に保存されている場合、RESTful API は oss:// で始まる一時 URL をサポートしますが、SDK は oss:// で始まる一時 URL をサポートしません。
  • 一時 URL は 48 時間有効で、有効期限が切れると使用できなくなります。本番環境では使用しないでください。
  • アップロード認証情報インターフェイスは 100 QPS にレート制限されており、スケールアップできません。本番環境、高同時実行、または負荷テストのシナリオでは使用しないでください。
  • 本番環境では、ファイルの長期的な可用性を確保し、レート制限を回避するために、Alibaba Cloud OSS などの安定したストレージを使用してください。
  • OSS の一時的なパブリック URL に設定された音声ファイル URL が到達不能な場合は、リクエストヘッダーで X-DashScope-OssResourceResolve を enable に設定します (非推奨)。 SDK はリクエストヘッダーの設定をサポートしていません。
vocabularyIdStringいいえプリコンパイルされたホットワードリストの ID。この ID は、ホットワードリスト作成 API を呼び出して事前に生成します。認識時に ID を渡して、リスト内のホットワードを使用します。語彙が既知で比較的安定しており、リクエスト間で同じ単語リストを再利用する必要があるシナリオに適しています。使用方法の詳細については、「プリコンパイルホットワード」をご参照ください。
vocabularyMap<String, Integer>いいえインスタントホットワード。キーをホットワードの文字列(string)、値を整数の重み(integer)とするキーバリューペアを渡します。事前にホットワードリストを作成する必要はありません。使用方法については、インスタントホットワードをご参照ください。TranscriptionParam インスタンスの parameter メソッドまたは parameters メソッドを介して vocabulary を設定します:
Map<String, Integer> vocab = new HashMap<>();
vocab.put("John Smith", 5);
vocab.put("Jane Doe", 5);

TranscriptionParam param = TranscriptionParam.builder()
  .model("fun-asr")
  .parameter("vocabulary", vocab)
  .build();
channelIdList<Integer>いいえマルチトラック音声ファイルで認識するオーディオトラックのインデックス。インデックスは 0 から始まります。たとえば、[0] は最初のトラックを認識し、[0, 1] は最初のトラックと 2 番目のトラックを同時に認識します。このパラメーターを省略すると、最初のトラックのみが処理されます。
指定された各トラックは個別に課金されます。たとえば、1 つのファイルに対して [0, 1] をリクエストすると、2 つの個別の料金が発生します。
デフォルト値:[0]。
specialWordFilterStringいいえ音声認識中に処理する禁止用語。禁止用語ごとに異なる処理方法を設定できます。詳細については、「禁止用語フィルター」をご参照ください。
diarizationEnabledBooleanいいえ話者ダイアライゼーションを有効にするかどうか。デフォルトでは無効です。モノラル音声にのみ適用されます。マルチチャンネル音声は話者ダイアライゼーションをサポートしていません。有効にすると、認識結果に異なる話者を区別する speaker_id フィールドが含まれます。
話者ダイアライゼーションを有効にする場合、音声の持続時間を 2 時間以内にしてください。そうしないと、認識が失敗したり、タイムアウトしたりする可能性があります。
デフォルト値:false。speaker_id の例については、「認識結果の説明」をご参照ください。
speakerCountIntegerいいえ
話者ダイアライゼーションが有効な場合 (diarization_enabled が true に設定されている場合) にのみ有効です。
話者数の参照値。有効な範囲は 2 から 100 までの整数 (両端を含む) です。デフォルトでは、話者数は自動的に検出されます。この値を設定すると、アルゴリズムが可能な場合に指定された数を出力するようにガイドするだけであり、正確な数を保証するものではありません。デフォルト値なし。
language_hintsString[]いいえ認識する言語コード。事前に言語を特定できない場合は、設定せずにそのままにしておくと、モデルが自動的に言語を検出します。最大 1 個の値を指定できます。それ以上指定した場合は、最初の 1 個だけが有効です。
  • zh: 中国語
  • en: 英語
  • ja: 日本語
  • ko: 韓国語
  • vi: ベトナム語
  • th: タイ語
  • id: インドネシア語
  • ms: マレー語
  • tl: フィリピン語
  • hi: ヒンディー語
  • ar: アラビア語
  • fr: フランス語
  • de: ドイツ語
  • es: スペイン語
  • pt: ポルトガル語
  • ru: ロシア語
  • it: イタリア語
  • nl: オランダ語
  • sv: スウェーデン語
  • da: デンマーク語
  • fi: フィンランド語
  • no: ノルウェー語
  • el: ギリシャ語
  • pl: ポーランド語
  • cs: チェコ語
  • hu: ハンガリー語
  • ro: ルーマニア語
  • bg: ブルガリア語
  • hr: クロアチア語
  • sk: スロバキア語
TranscriptionParam インスタンスの parameter メソッドまたは parameters メソッドを介して language_hints を設定します:
TranscriptionParam param = TranscriptionParam.builder()
  .model("fun-asr")
  .parameter("language_hints", new String[]{"zh"})
  .build();
apiKeyStringいいえご利用の API キー。API キーを環境変数として設定している場合は、コードで設定する必要はありません。そうでない場合は、コードで設定する必要があります。

応答

タスク結果 (TranscriptionResult)

TranscriptionResult は、現在のタスクの結果をカプセル化します。
インターフェイス/メソッドパラメーター戻り値説明
public String getRequestId()
なしrequestIdrequestId を取得します。
public String getTaskId()
なしtaskIdtaskId を取得します。
public TaskStatus getTaskStatus()
なしTaskStatus、タスクステータスタスクステータスを取得します。TaskStatus は列挙型です。次の 4 つの状態にのみ注目する必要があります:PENDING、RUNNING、SUCCEEDED、FAILED。
タスクに複数のサブタスクが含まれている場合、いずれか 1 つのサブタスクが成功すれば、全体のタスクステータスは SUCCEEDED とマークされます。個々のサブタスクの結果を確認するには、subtask_status フィールドを使用してください。
public List<TranscriptionTaskResult> getResults()
なしサブタスク結果 (TranscriptionTaskResult)サブタスク結果 (TranscriptionTaskResult) を取得します。各タスクは 1 つ以上の音声ファイルを認識します。異なる音声ファイルは別々のサブタスクで処理されるため、各タスクは 1 つ以上のサブタスクに対応します。
public JsonObject getOutput()
なしタスク結果、JSON 形式タスク結果を取得します。結果は JSON 形式のデータです。getOutput インターフェイスを介してタスク結果を取得したい場合は、結果を取得した後に自分で解析してください。
成功例
{
    "task_id":"0795ff8c-b666-4e91-bb8b-xxx",
    "task_status":"SUCCEEDED",
    "submit_time":"2025-02-13 16:12:09.109",
    "scheduled_time":"2025-02-13 16:12:09.128",
    "end_time":"2025-02-13 16:12:10.189",
    "results":[
        {
            "file_url":"{YOUR_AUDIO_URL}",
            "transcription_url":"https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/prod/paraformer-v2/20250213/16%3A12/3baafe5f-d09d-46c6-8b01-724927670edb-1.json?Expires=1739520730&OSSAccessKeyId=YOUR_ACCESS_KEY_ID&Signature=YOUR_SIGNATURE",
            "subtask_status":"SUCCEEDED"
        }
    ],
    "task_metrics":{
        "TOTAL":1,
        "SUCCEEDED":1,
        "FAILED":0
    }
}
エラー例codeはエラーコード、messageはエラーメッセージです。これらの 2 つのフィールドはエラーが発生した場合にのみ表示されます。これらを エラーコード と共に使用して、問題をトラブルシューティングできます。
{
          "task_id": "7bac899c-06ec-4a79-8875-xxxxxxxxxxxx",
          "task_status": "SUCCEEDED",
          "submit_time": "2024-12-16 16:30:59.170",
          "scheduled_time": "2024-12-16 16:30:59.204",
          "end_time": "2024-12-16 16:31:02.375",
          "results": [
              {
                  "file_url": "{YOUR_AUDIO_URL}",
                  "code": "InvalidFile.DownloadFailed",
                  "message": "The audio file cannot be downloaded.",
                  "subtask_status": "FAILED"
              }
          ],
          "task_metrics": {
              "TOTAL": 1,
              "SUCCEEDED": 0,
              "FAILED": 1
          }
      }

サブタスク結果 (TranscriptionTaskResult)

TranscriptionTaskResult はサブタスクの結果をカプセル化します。サブタスクは単一の音声ファイルを認識します。
インターフェイス/メソッドパラメーター戻り値説明
public String getFileUrl()
なし認識された音声ファイルの URL認識された音声ファイルの URL を取得します。
public String getTranscriptionUrl()
なし認識結果の URL認識結果の URL を取得します。この URL は 24 時間有効です。有効期限が切れると、以前のクエリで返された URL を通じてタスクをクエリしたり、結果をダウンロードしたりすることはできなくなります。認識結果は JSON ファイルとして保存されます。URL を通じてファイルをダウンロードするか、HTTP リクエストを介して直接その内容を読み取ることができます。JSON データ内の各フィールドの意味については、「認識結果の説明」をご参照ください。
public TaskStatus getSubTaskStatus()
なしTaskStatus、サブタスクステータスサブタスクステータスを取得します。TaskStatus は列挙型です。次の 4 つの状態にのみ注目する必要があります:PENDING、RUNNING、SUCCEEDED、FAILED。
public String getMessage()
なしタスク実行中に生成された主要な情報。空の場合がありますタスク実行中に生成された主要な情報を取得します。タスクが失敗した場合、原因を分析するためにこの内容を確認してください。

認識結果の説明

認識結果は JSON ファイルとして保存されます。
{
    "file_url":"{YOUR_AUDIO_URL}",
    "properties":{
        "audio_format":"pcm_s16le",
        "channels":[
            0
        ],
        "original_sampling_rate":16000,
        "original_duration_in_milliseconds":3834
    },
    "transcripts":[
        {
            "channel_id":0,
            "content_duration_in_milliseconds":3720,
            "text":"こんにちは世界、こちらはアリババスピーチラボです。",
            "sentences":[
                {
                    "begin_time":100,
                    "end_time":3820,
                    "text":"こんにちは世界、こちらはアリババスピーチラボです。",
                    "sentence_id":1,
                    "speaker_id":0, //このフィールドは、話者ダイアライゼーションが有効な場合にのみ表示されます
                    "words":[
                        {
                            "begin_time":100,
                            "end_time":596,
                            "text":"こんにちは ",
                            "punctuation":""
                        },
                        {
                            "begin_time":596,
                            "end_time":844,
                            "text":"世界",
                            "punctuation":", "
                        }
                        // 他のコンテンツはここで省略されています
                    ]
                }
            ]
        }
    ]
}
以下のパラメーターは注目に値します:
パラメータータイプ説明
audio_formatstringソースファイルの音声フォーマット。
channelsarray[integer]ソースファイル内の音声のトラックインデックス。シングルトラック音声の場合は [0]、デュアルトラック音声の場合は [0, 1] が返されます。
original_sampling_rateintegerソースファイル内の音声のサンプルレート (Hz)。
original_duration_in_millisecondsintegerソースファイル内の元の音声の持続時間 (ms)。
channel_idinteger文字起こし結果のトラックインデックス。0 から始まります。
content_durationinteger音声として識別されたトラック内のコンテンツの持続時間 (ms)。音声認識モデルサービスは、音声として識別されたトラック内のコンテンツのみを文字起こしし、その持続時間に基づいて従量課金します。非音声コンテンツは従量課金されません。通常、音声コンテンツの持続時間は元の音声の持続時間よりも短くなります。音声コンテンツが存在するかどうかは AI モデルによって決定されるため、結果は実際の状況と若干異なる場合があります。
transcriptstring段落レベルの文字起こし結果。
sentencesarray文レベルの文字起こし結果。
wordsarray単語レベルの文字起こし結果。
begin_timeinteger開始タイムスタンプ (ms)。
end_timeinteger終了タイムスタンプ (ms)。
textstring文字起こし結果。
speaker_idinteger現在の話者のインデックス。0 から始まり、異なる話者を区別するために使用されます。このフィールドは、話者ダイアライゼーションが有効な場合にのみ認識結果に表示されます。
punctuationstring単語の後に予測される句読点 (もしあれば)。

主要なインターフェイス

タスククエリパラメータークラス (TranscriptionQueryParam)

TranscriptionQueryParam は、タスクの完了を待機する場合 (Transcription の wait メソッドを呼び出す) や、タスク結果をクエリする場合 (Transcription の fetch メソッドを呼び出す) に使用されます。 静的メソッド FromTranscriptionParam を介して TranscriptionQueryParam インスタンスを作成します。
// 文字起こしリクエストのパラメーターを構築
TranscriptionParam param =
        TranscriptionParam.builder()
                // API キーを環境変数として設定していない場合は、apiKey をご自身の API キーに置き換えてください
                //.apiKey("apikey")
                .model("fun-asr")
                .fileUrls(
                        Arrays.asList(
                                "{YOUR_AUDIO_URL}"))
                .build();
try {
    Transcription transcription = new Transcription();
    // 文字起こしリクエストを送信
    TranscriptionResult result = transcription.asyncCall(param);
    System.out.println("RequestId: " + result.getRequestId());
    TranscriptionQueryParam queryParam = TranscriptionQueryParam.FromTranscriptionParam(param, result.getTaskId());

} catch (Exception e) {
    System.out.println("error: " + e);
}
インターフェイス/メソッドパラメーター戻り値説明
public static TranscriptionQueryParam FromTranscriptionParam(TranscriptionParam param, String taskId)
  • param:TranscriptionParam インスタンス
  • taskId:タスク ID
TranscriptionQueryParam インスタンスTranscriptionQueryParam インスタンスを作成します。

コアクラス (Transcription)

import com.alibaba.dashscope.audio.asr.transcription.*;で Transcription をインポートします。その主要なインターフェイスは次のとおりです:
インターフェイス/メソッドパラメーター戻り値説明
public TranscriptionResult asyncCall(TranscriptionParam param)
param:音声認識パラメーター、TranscriptionParam インスタンスタスク結果 (TranscriptionResult)音声認識タスクを非同期で送信します。
public TranscriptionResult wait(TranscriptionQueryParam queryParam)
queryParam:TranscriptionQueryParam インスタンスタスク結果 (TranscriptionResult)非同期タスクが終了するまで (タスクステータスが SUCCEEDED または FAILED になるまで) 現在のスレッドをブロックします。
public TranscriptionResult fetch(TranscriptionQueryParam queryParam)
queryParam:TranscriptionQueryParam インスタンスタスク結果 (TranscriptionResult)現在のタスク結果を非同期でクエリします。

エラーコード

エラーが発生した場合は、「エラーコード」を参照してトラブルシューティングを行ってください。 タスクに複数のサブタスクが含まれている場合、少なくとも 1 つのサブタスクが成功すれば、全体のタスクステータスは SUCCEEDED とマークされます。各サブタスクの結果を判断するには、subtask_status フィールドを確認してください。 エラー応答の例:
{
    "task_id": "7bac899c-06ec-4a79-8875-xxxxxxxxxxxx",
    "task_status": "SUCCEEDED",
    "submit_time": "2024-12-16 16:30:59.170",
    "scheduled_time": "2024-12-16 16:30:59.204",
    "end_time": "2024-12-16 16:31:02.375",
    "results": [
        {
            "file_url": "{YOUR_AUDIO_URL}",
            "code": "InvalidFile.DownloadFailed",
            "message": "The audio file cannot be downloaded.",
            "subtask_status": "FAILED"
        }
    ],
    "task_metrics": {
        "TOTAL": 1,
        "SUCCEEDED": 0,
        "FAILED": 1
    }
}

よくある質問

機能

Q:Base64 エンコードされた音声はサポートされていますか?

Base64 エンコードされた音声はサポートされていません。パブリックアクセス可能な URL にある音声のみが認識可能です。バイナリストリームやローカルファイルは直接認識できません。

Q:音声ファイルをパブリックアクセス可能な URL で利用できるようにするにはどうすればよいですか?

一般的な手順は次のとおりです。これは 1 つのアプローチであり、正確なプロセスはストレージ製品によって異なります。音声を Alibaba Cloud OSS にアップロードすることを推奨します:
例:
  • オブジェクトストレージサービス (推奨):
    • クラウドプロバイダーのオブジェクトストレージサービス (例:Alibaba Cloud OSS) を使用して、音声ファイルをバケットにアップロードし、パブリックアクセスに設定します。
    • 利点:高可用性、CDN アクセラレーションのサポート、および簡単な管理。
  • Web サーバー:
    • HTTP/HTTPS アクセスをサポートする Web サーバー (Nginx や Apache など) に音声ファイルを配置します。
    • 利点:小規模なプロジェクトやローカルテストに適しています。
  • コンテンツデリバリーネットワーク (CDN):
    • CDN 上で音声ファイルをホストし、CDN が提供する URL を介してアクセスします。
    • 利点:ファイル配信を高速化し、高同時実行シナリオに適しています。
選択したストレージまたはホスティング方法に従って音声をアップロードします。例:
  • オブジェクトストレージサービス:
    • クラウドプロバイダーのコンソールにログインし、バケットを作成します。
    • 音声ファイルをアップロードし、その権限をパブリック読み取りに設定するか、一時的なアクセスリンクを生成します。
  • Web サーバー:
    • サーバー上の指定されたディレクトリ (例:/var/www/html/audio/) に音声ファイルを配置します。
    • ファイルが HTTP/HTTPS 経由でアクセス可能であることを確認します。
例:
  • オブジェクトストレージサービス:
    • ファイルがアップロードされると、システムは自動的にパブリックアクセス URL を生成します (通常は https://<bucket-name>.<region>.aliyuncs.com/<file-name> の形式)。
    • より分かりやすいドメイン名にするには、カスタムドメインをバインドして HTTPS を有効にします。
  • Web サーバー:
    • アクセス URL は通常、サーバーアドレスとファイルパスを組み合わせたものです (例:https://your-domain.com/audio/file.mp3)。
  • CDN:
    • CDN アクセラレーションを設定した後、CDN が提供する URL を使用します (例:https://cdn.your-domain.com/audio/file.mp3)。
生成された URL がパブリックネットワーク経由でアクセス可能であることを確認します。例:
  • ブラウザで URL を開き、音声ファイルが再生されるかどうかを確認します。
  • ツール (例:curl や Postman) を使用して、URL が正しい HTTP 応答 (ステータスコード 200) を返すことを確認します。
SDK を使用する場合、音声ファイルが Alibaba Cloud OSS に保存されている場合、oss:// プレフィックスを持つ一時 URL はサポートされません。 RESTful API を使用する場合、音声ファイルが Alibaba Cloud OSS に保存されている場合、oss:// プレフィックスを持つ一時 URL はサポートされます:
  • 一時 URL は 48 時間有効で、有効期限が切れると使用できなくなります。本番環境では使用しないでください。
  • アップロード認証情報を取得するための API は 100 QPS に制限されており、スケールアウトはサポートされていません。本番環境、高同時実行シナリオ、またはストレステストシナリオでは使用しないでください。
  • 本番環境では、ファイルの長期的な可用性を確保し、レート制限の問題を回避するために、OSS などの安定したストレージサービスを使用してください。

Q:認識結果を取得するのにどれくらい時間がかかりますか?

タスクが送信されると、キュー登録済み (PENDING) 状態になります。キューイング時間はキューの長さと音声の持続時間に依存するため、正確には言えませんが、通常は数分以内です。一般的に、音声が長いほど時間がかかります。

トラブルシューティング

コードがエラーを返した場合、「エラーコード」の情報に基づいてトラブルシューティングを行ってください。

Q:ポーリングしても結果が返ってこないのですが?

これはスロットリングが原因である可能性があります。しばらく待ってから再試行してください。

Q:なぜ音声が認識されないのですか (認識結果がない)?

音声フォーマットとサンプルレートが正しく、パラメーターの制約を満たしていることを確認してください。 ffprobe ツールを使用して、音声コンテナ、コーデック、サンプルレート、チャンネル、その他の詳細を取得します:
ffprobe -v error -show_entries format=format_name -show_entries stream=codec_name,sample_rate,channels -of default=noprint_wrappers=1 input.xxx