すべてのプロダクト
Search
ドキュメントセンター

Intelligent Speech Interaction:API リファレンス

最終更新日:Oct 28, 2026

録音ファイル認識は、非同期タスクを使用して録音された音声をテキストに変換します。HTTP または HTTPS 経由でダウンロード可能なファイル URL を送信すると、ポーリングまたはコールバックによって結果を取得できます。ローカルファイルは直接送信できません。

課金とサービスバージョン

録音ファイル認識には、トライアル版と商用版があります。課金ルールについては、「課金」をご参照ください。

新しい統合では、タスクパラメーターで version="4.0" を明示的に設定してください。このバージョンでは、ポーリングとコールバックの結果に同じキャメルケースのフィールドが使用されます。レガシーなコールバック形式については、「レガシーバージョンの互換性」をご参照ください。

制限事項

ファイル要件

WAV、MP3、M4A、WMA、AAC、OGG、AMR、FLAC 形式の録音ファイルがサポートされています。最大ファイルサイズは 512 MB です。WAV および MP3 ファイルは、シングルチャネルおよびデュアルチャネルの音声をサポートします。

音声の言語とサンプルレートは、プロジェクトに設定された ASR モデルと一致する必要があります。モデルの選択とサポートされているモデルについては、「言語とモデル」をご参照ください。

録音ファイルは、サービスがアクセスできるファイルサーバーに保存してください。URL のホストには IP アドレスではなくドメイン名を使用してください。URL にスペースを含めることはできません。URL に中国語の文字を使用することは避けてください。

ファイルの保存には Alibaba Cloud Object Storage Service (OSS) を推奨します。公開読み取りファイルの場合は、アクセス可能なファイル URL を使用してください。非公開ファイルの場合は、サービスがファイルをダウンロードする間有効な署名付き URL を使用してください。手順については、「署名付き URL を使用したファイルのダウンロードまたはプレビュー」をご参照ください。

自己ホスト型のファイルサーバーの場合、HTTP レスポンスヘッダーの Content-Length が実際のレスポンスボディの長さと一致することを確認してください。

有効な URL

無効な URL

https://gw.alipayobjects.com/os/bmw-prod/0574ee2e-f494-45a5-820f-63aee583045a.wav

  • http://127.0.0.1/sample.wav

  • D:\files\sample.wav

リクエストレートとタスク保持

認識結果クエリのユーザーレベルの QPS 制限は 100 です。

レート制限を超えたリクエストは Throttling.User を返します。ポーリング間隔を設定してリクエストレートを制御してください。

無料ユーザーは、1 日あたり最大 2 時間の録画ファイルを認識できます。

送信後、無料ユーザーのタスクは 24 時間以内に完了し、有料ユーザーのタスクは 6 時間以内に完了します。認識結果はサーバーに 72 時間保持されます。

重要

これらの処理時間は、30 分以内に 500 時間以上の録音を送信するなどの大規模なバッチ処理には適用されません。大規模な認識要件については、プリセールススペシャリストにお問い合わせください。

ワークフロー

  1. 音声の言語とサンプルレートに基づいて、プロジェクトの ASR モデルを設定します。

  2. 録音ファイルのダウンロード可能な URL を準備します。

  3. POST リクエストを使用して SubmitTask を呼び出し、Task パラメーターでタスク設定を渡します。送信が成功すると、JSON レスポンスのトップレベルの TaskId フィールドにタスク ID が返されます。

  4. 結果を取得します:ポーリングの場合は、この TaskId を使用して GetTaskResult を呼び出します。コールバックの場合は、enable_callback=true と callback_url を設定します。タスクが完了すると、サービスは POST を使用してコールバック URL に結果を送信します。

インタラクションフロー

以下の図は、クライアントとサーバー間のインタラクションを示しています。タスク ID は JSON レスポンスの TaskId フィールドで返されます。

Client-server interaction flow for recording file recognition

API 設定

このサービスは、AccessKey 署名によって認証される RPC スタイルの POP API を提供します。SubmitTask は POST を使用し、GetTaskResult は GET を使用します。SDK 設定で使用されるプロダクト名は nls-filetrans です。リージョン、エンドポイント、API 日付バージョンを次のように設定します:

リージョン regionId / endpointName domain API 日付バージョン (Version)
シンガポール ap-southeast-1 filetrans.ap-southeast-1.aliyuncs.com 2019-08-23

API 日付バージョン Version は POP リクエストを設定します。タスクパラメーター内の小文字の version は、録音ファイル認識サービスのバージョンを選択します。

リクエストパラメーター

タスクの送信:SubmitTask

以下の JSON オブジェクトを文字列としてシリアライズし、POST リクエストの Task パラメーターとして渡します。この例では、valid_times は認識を指定された間隔に制限します。ファイル全体を認識するには、このフィールドを省略します。

nls-sample-en-16k.wav サンプルをダウンロードし、サービスが HTTP または HTTPS 経由でアクセスできる場所にアップロードしてください。以下の例の file_link をそのファイル URL に置き換えてください。

{
    "appkey": "your-appkey",
    "file_link": "https://your-domain.example/nls-sample-en-16k.wav",
    "auto_split": false,
    "version": "4.0",
    "enable_words": false,
    "enable_sample_rate_adaptive": true,
    "valid_times": [
        {
            "begin_time": 0,
            "end_time": 3049,
            "channel_id": 0
        }
    ]
}

Task フィールド

パラメーター

タイプ

必須

説明

appkey

String

はい

プロジェクトの Appkey。プロジェクトに設定された ASR モデルは、音声の言語とサンプルレートに一致する必要があります。

file_link

String

はい

録音ファイルの HTTP または HTTPS ダウンロード URL。サービスはこの URL からファイルをダウンロードできる必要があります。

version

String

いいえ

タスクが使用するサービスバージョン。デフォルト:2.0。新しい統合では、このパラメーターを明示的に 4.0 に設定してください。コールバック形式の互換性については、「レガシーバージョンの互換性」をご参照ください。

enable_words

Boolean

いいえ

単語情報を返すかどうかを指定します。デフォルト:false。この機能を有効にするには、version を 4.0 に設定します。

enable_sample_rate_adaptive

Boolean

いいえ

16 kHz を超えるサンプルレートの音声を自動的に 16 kHz にダウンサンプリングするかどうかを指定します。デフォルト:false。この機能を有効にするには、version を 4.0 に設定します。

enable_callback

Boolean

いいえ

コールバックを有効にするかどうかを指定します。デフォルト:false。

callback_url

String

いいえ

コールバック URL。enable_callback が true の場合に必須です。HTTP と HTTPS がサポートされています。ホストには IP アドレスではなくドメイン名を使用してください。コールバックサービスは POST リクエストを受け入れる必要があります。

auto_split

Boolean

いいえ

話者ダイアライゼーションを有効にするかどうかを指定します。各文の ChannelId はその話者を識別します。通常、最初の話者の ChannelId は 0 です。この機能では 8 kHz のシングルチャンネルオーディオがサポートされています。

enable_unify_postBooleanいいえ後処理を有効にするかどうかを指定します。デフォルト:false。auto_split と enable_unify_post の両方を true にすることはできません。

enable_inverse_text_normalization

Boolean

いいえ

逆テキスト正規化 (ITN) を有効にして、中国語の数詞をアラビア数字に変換するかどうかを指定します。デフォルト:false。この機能を有効にするには、version を 4.0 に設定し、enable_unify_post を true に設定します。ITN は単語情報には適用されません。

enable_disfluency

Boolean

いいえ

言い淀み除去を有効にするかどうかを指定します。デフォルト:false。この機能を有効にするには、version を 4.0 に設定し、enable_unify_post を true に設定します。

valid_times

List< ValidTime >

いいえ

有効な時間間隔のリスト。指定された音声セグメントのみが認識されます。各要素のフィールドについては、以下の ValidTime フィールドをご参照ください。

max_end_silence

Integer

いいえ

文末のサイレンスの最大値。デフォルト: 450 ms。

max_single_segment_time

Integer

いいえ

文の最大持続時間。最小値: 10000 ms。デフォルト: 20000 ms。

customization_id

String

いいえ

POP API を使用して作成されたカスタム言語モデルの ID。デフォルトでは省略されます。

class_vocabulary_id

String

いいえ

クラス語彙の ID。デフォルトでは省略されます。

vocabulary_id

String

いいえ

一般語彙の ID。デフォルトでは省略されます。

ValidTime フィールド

valid_times の各要素には、以下のフィールドが含まれます:

パラメーター

タイプ

必須

説明

begin_time

Int

はい

有効な時間範囲の開始オフセット。単位:ミリ秒。

end_time

Int

はい

有効な時間範囲の終了オフセット。単位:ミリ秒。

channel_id

Int

はい

有効な時間範囲が適用されるトラックのインデックス。インデックスは 0 から始まります。

結果のクエリ:GetTaskResult

送信時に返されたタスク ID を GET リクエストの TaskId パラメーターとして渡します。リクエストレート制限に従ってクエリ間隔を設定してください。

パラメーター

タイプ

必須

説明

TaskId

String

はい

認識タスク ID。

レスポンスパラメーター

HTTP ステータスは API リクエストがどのように処理されたかを示します。タスクの認識ステータスは、JSON レスポンスの StatusCode と StatusText によって報告されます。

送信レスポンス

送信が成功すると、次の JSON が返されます:

{
        "TaskId": "4b56f0c4b7e611e88f34c33c2a60****",
        "RequestId": "E4B183CC-6CFE-411E-A547-D877F7BD****",
        "StatusText": "SUCCESS",
        "StatusCode": 21050000
}

パラメーター

タイプ

必須

説明

TaskId

String

はい

認識タスク ID。

RequestId

String

はい

リクエスト ID。統合テストにのみ使用されます。

StatusCode

Int

はい

ステータスコード。

StatusText

String

はい

ステータスの説明。

クエリレスポンス

成功

次の例は、シングルチャネルの英語録音 nls-sample-en-16k.wav の認識結果を示しています。

{
    "TaskId": "7a200beed1f111f1a112b5efb07c****",
    "RequestId": "01A17CE9-B0EC-3FE4-B2EA-10C59979****",
    "StatusText": "SUCCESS",
    "BizDuration": 3049,
    "SolveTime": 1793097051064,
    "StatusCode": 21050000,
    "Result": {
        "Sentences": [
            {
                "EndTime": 1630,
                "SilenceDuration": 0,
                "BeginTime": 0,
                "Text": "today is monday",
                "ChannelId": 0,
                "SpeechRate": 73,
                "EmotionValue": 6.0
            },
            {
                "EndTime": 3030,
                "SilenceDuration": 0,
                "BeginTime": 1810,
                "Text": "the weather is nice",
                "ChannelId": 0,
                "SpeechRate": 147,
                "EmotionValue": 6.3
            }
        ]
    }
}

キューイング中

認識はまだ開始されていません。再度クエリする前に待機してください。

{
        "TaskId": "c7274235b7e611e88f34c33c2a60****",
        "RequestId": "981AD922-0655-46B0-8C6A-5C836822****",
        "StatusText": "QUEUEING",
        "StatusCode": 21050002
}

実行中

認識は進行中です。再度クエリする前に待機してください。

{
        "TaskId": "c7274235b7e611e88f34c33c2a60****",
        "RequestId": "8E908ED2-867F-457E-82BF-4756194A****",
        "StatusText": "RUNNING",
        "BizDuration": 0,
        "StatusCode": 21050001
}

失敗

次の例は、ファイルのダウンロード失敗を示しています。エラーを処理するには StatusCode と StatusText を使用してください。

{
        "TaskId": "4cf25b7eb7e711e88f34c33c2a60****",
        "RequestId": "098BF27C-4CBA-45FF-BD11-3F532F26****",
        "StatusText": "FILE_DOWNLOAD_FAILED",
        "BizDuration": 0,
        "SolveTime": 1536906469146,
        "StatusCode": 41050002
}

レスポンスフィールド

Sentences と Words は Result オブジェクトに含まれます。

パラメーター

タイプ

必須

説明

TaskId

String

はい

認識タスク ID。

StatusCode

Int

はい

ステータスコード。

StatusText

String

はい

ステータスの説明。

RequestId

String

はい

デバッグに使用されるリクエスト ID。

Result

Object

いいえ

タスクが成功したときに返される認識結果オブジェクト。キューイング中、実行中、または失敗したタスクのレスポンスには含まれません。

Sentences

List< SentenceResult >

いいえ

Result 内の文の結果。StatusText が SUCCESS の場合に返されます。

Words

List< WordResult >

いいえ

Result 内の単語情報。enable_words が true で version が 4.0 の場合に返されます。

BizDuration

Long

いいえ

認識された音声の持続時間 (ミリ秒)。

SolveTime

Long

いいえ

認識が完了したときの UNIX タイムスタンプ (ミリ秒)。タスクが完了する前は返されません。

Sentences フィールド

パラメーター

タイプ

必須

説明

ChannelId

Int

はい

文のトラック ID。

BeginTime

Int

はい

文の開始オフセット。単位:ミリ秒。

EndTime

Int

はい

文の終了オフセット。単位:ミリ秒。

Text

String

はい

文の認識されたテキスト。

EmotionValue

Float

はい

感情エネルギー値。デシベル単位の音量を 10 で割って計算されます。有効範囲:1 から 10。

SilenceDuration

Int

はい

この文と前の文の間の無音時間。単位:秒。

SpeechRate

Int

はい

文の平均発話速度。

  • 中国語の場合、単位は 1 分あたりの文字数です。

  • 英語の場合、単位は 1 分あたりの単語数です。

コールバック結果

enable_callback=true、callback_url、および version="4.0" が設定されている場合、タスクが完了するとサービスはコールバック URL に POST リクエストを送信します。認識結果のフィールドは、ポーリングによって返されるものと同じです:

{
    "Result": {
        "Sentences": [
            {
                "EndTime": 1630,
                "SilenceDuration": 0,
                "BeginTime": 0,
                "Text": "today is monday",
                "ChannelId": 0,
                "SpeechRate": 73,
                "EmotionValue": 6.0
            },
            {
                "EndTime": 3030,
                "SilenceDuration": 0,
                "BeginTime": 1810,
                "Text": "the weather is nice",
                "ChannelId": 0,
                "SpeechRate": 147,
                "EmotionValue": 6.3
            }
        ]
    },
    "TaskId": "36d01b244ad811e9952db7bb7ed2****",
    "StatusCode": 21050000,
    "StatusText": "SUCCESS",
    "RequestTime": 1553062810452,
    "SolveTime": 1553062810831,
    "BizDuration": 3049
}

RequestTime はタスク送信の UNIX タイムスタンプであり、SolveTime は認識が完了したときの UNIX タイムスタンプです。どちらもミリ秒単位です。

単語情報

enable_words=true と version="4.0" が設定されている場合、結果には Words が含まれます。ポーリングとコールバックは同じ単語情報を返します。次の例は、同じ英語の録音の結果を示しています:

{
    "TaskId": "2e6a076bd1f111f1b005ad4b8dcd****",
    "RequestId": "01A17CE7-CD86-32AC-8F5A-AAFD425A****",
    "StatusText": "SUCCESS",
    "BizDuration": 3049,
    "SolveTime": 1793096926573,
    "StatusCode": 21050000,
    "Result": {
        "Words": [
            {
                "Word": "today",
                "EndTime": 600,
                "BeginTime": 270,
                "ChannelId": 0
            },
            {
                "Word": "is",
                "EndTime": 810,
                "BeginTime": 600,
                "ChannelId": 0
            },
            {
                "Word": "monday",
                "EndTime": 1080,
                "BeginTime": 810,
                "ChannelId": 0
            },
            {
                "Word": "the",
                "EndTime": 2020,
                "BeginTime": 1900,
                "ChannelId": 0
            },
            {
                "Word": "weather",
                "EndTime": 2290,
                "BeginTime": 2020,
                "ChannelId": 0
            },
            {
                "Word": "is",
                "EndTime": 2560,
                "BeginTime": 2290,
                "ChannelId": 0
            },
            {
                "Word": "nice",
                "EndTime": 2650,
                "BeginTime": 2560,
                "ChannelId": 0
            }
        ],
        "Sentences": [
            {
                "EndTime": 1630,
                "SilenceDuration": 0,
                "BeginTime": 0,
                "Text": "today is monday",
                "ChannelId": 0,
                "SpeechRate": 73,
                "EmotionValue": 6.0
            },
            {
                "EndTime": 3030,
                "SilenceDuration": 0,
                "BeginTime": 1810,
                "Text": "the weather is nice",
                "ChannelId": 0,
                "SpeechRate": 147,
                "EmotionValue": 6.3
            }
        ]
    }
}

単語フィールド

パラメーター

タイプ

必須

説明

BeginTime

Int

はい

単語の開始時刻。単位:ミリ秒。

EndTime

Int

はい

単語の終了時刻。単位:ミリ秒。

ChannelId

Int

はい

単語のトラック ID。

Word

String

はい

単語のテキスト。

タスクのステータスとエラー処理

StatusCode StatusText 説明
21050000 SUCCESS SubmitTask:タスクは正常に送信されました。GetTaskResult:認識は成功しました。
21050001 RUNNING 認識は進行中です。再度クエリする前に待機してください。
21050002 QUEUEING タスクはキューイング中です。再度クエリする前に待機してください。
21050003 SUCCESS_WITH_NO_VALID_FRAGMENT タスクは完了しましたが、有効な音声セグメントは検出されませんでした。ファイルに有効な音声が含まれているか確認してください。

エラーコード

ステータスコード ステータスメッセージ 原因と解決策
41050001 USER_BIZDURATION_QUOTA_EXCEED 1 日の認識時間制限を超えました。より大きなワークロードが必要な場合は、nls_support@service.aliyun.com の営業担当者にお問い合わせください。
41050002 FILE_DOWNLOAD_FAILED ファイルをダウンロードできませんでした。URL と、サービスがファイルをダウンロードできるかどうかを確認してください。
41050003 FILE_CHECK_FAILED ファイル形式が要件を満たしていません。サポートされている録音形式を使用してください。
41050004 FILE_TOO_LARGE ファイルが大きすぎます。録音ファイルが 512 MB を超えていないか確認してください。
41050005 FILE_NORMALIZE_FAILED ファイルの正規化に失敗しました。ファイルが破損していないか、再生できるかを確認してください。
41050006 FILE_PARSE_FAILED ファイルの解析に失敗しました。ファイルが破損していないか、再生できるかを確認してください。
41050007 MKV_PARSE_FAILED MKV の解析に失敗しました。ファイルが破損していないか、再生できるかを確認してください。
41050008 UNSUPPORTED_SAMPLE_RATE 音声のサンプルレートがプロジェクトモデルと一致しません。音声のサンプルレートが Appkey に関連付けられたプロジェクトに設定された ASR モデルと一致するか確認してください。
41050009 UNSUPPORTED_ASR_GROUP ASR グループはサポートされていません。Appkey と、それが署名に使用された AccessKey と同じアカウントに属しているかを確認してください。
41050010 FILE_TRANS_TASK_EXPIRED TaskId が存在しないか、タスクが期限切れです。タスク ID と結果の保持時間を確認してください。
41050011 REQUEST_INVALID_FILE_URL_VALUE file_link が無効です。ファイル URL の形式とアクセシビリティを確認してください。
41050012 REQUEST_INVALID_CALLBACK_VALUE callback_url が無効です。コールバックが有効な場合は、有効なコールバック URL を提供してください。
41050013 REQUEST_PARAMETER_INVALID タスクパラメーターが無効です。Task は有効な JSON 文字列である必要があります。
41050014 REQUEST_EMPTY_APPKEY_VALUE appkey が空です。プロジェクトの Appkey を指定してください。
41050015 REQUEST_APPKEY_UNREGISTERED Appkey が登録されていないか、一致しません。Appkey と、それが署名に使用された AccessKey と同じアカウントに属しているかを確認してください。
41050021 RAM_CHECK_FAILED RAM 権限チェックに失敗しました。RAM ユーザーに音声サービス API を呼び出す権限を付与してください。
41050023 CONTENT_LENGTH_CHECK_FAILED HTTP レスポンスの Content-Length が実際のファイルサイズと一致しません。ファイルサーバーのレスポンスヘッダーを修正してください。
41050024 FILE_404_NOT_FOUND ダウンロードするファイルが存在しません。ファイル URL を確認してください。
41050025 FILE_403_FORBIDDEN 権限が不十分なため、ファイルをダウンロードできません。録音ファイルをダウンロードする権限があるか確認してください。
41050026 FILE_SERVER_ERROR ファイルサーバーが利用できません。ファイルサーバーが利用可能か確認してください。
51050000 INTERNAL_ERROR 内部サービスエラーが発生しました。散発的なエラーは無視できます。エラーが繰り返し発生する場合は、テクニカルサポートにお問い合わせください。
51050001 VAD_FAILED 音声アクティビティ検出に失敗しました。散発的なエラーは無視できます。エラーが繰り返し発生する場合は、テクニカルサポートにお問い合わせください。
51050002 RECOGNIZE_FAILED 認識に失敗しました。散発的なエラーは無視できます。エラーが繰り返し発生する場合は、テクニカルサポートにお問い合わせください。
51050003 RECOGNIZE_INTERRUPT 認識が中断されました。散発的なエラーは無視できます。エラーが繰り返し発生する場合は、テクニカルサポートにお問い合わせください。
51050004 OFFER_INTERRUPT キューへの書き込みが中断されました。散発的なエラーは無視できます。エラーが繰り返し発生する場合は、テクニカルサポートにお問い合わせください。
51050005 FILE_TRANS_TIMEOUT タスク処理がタイムアウトしました。散発的なエラーは無視できます。エラーが繰り返し発生する場合は、テクニカルサポートにお問い合わせください。
51050006 FRAGMENT_FAILED 音声セグメンテーションに失敗しました。散発的なエラーは無視できます。エラーが繰り返し発生する場合は、テクニカルサポートにお問い合わせください。

言語とモデル

プロジェクトの言語モデルと方言モデルを設定します。これらはこの API のタスクパラメーターを通じて選択することはできません。カスタム言語モデルとホットワードがサポートされています。詳細については、「言語モデルのカスタマイズ」および「ホットワード」をご参照ください。

Intelligent Speech Interaction コンソールの[すべてのプロジェクト] ページで、対象のプロジェクトを選択し、[プロジェクト設定] を開きます。[構成の変更] で、[ASR モデルの選択] を使用して、サンプルレートに一致するモデルを選択します。サンプルレートが 8 kHz または 16 kHz のモデルが利用可能です。プロジェクト構成のモデルオプションをご参照ください。手順については、「プロジェクトの管理」をご参照ください。

レガシーバージョンの互換性

version="2.0" のタスクのコールバック結果は、バージョン 4.0 で使用されるキャメルケースのフィールドではなく、スネークケースのフィールドを使用します。レガシーなコールバック形式を解析するアプリケーションは、4.0 にアップグレードする際にフィールドの解析を更新する必要があります。次の例は、レガシーなコールバック形式を示しています:

{
    "result": [
        {
            "end_time": 1630,
            "silence_duration": 0,
            "begin_time": 0,
            "text": "today is monday",
            "channel_id": 0,
            "speech_rate": 73,
            "emotion_value": 6.0
        },
        {
            "end_time": 3030,
            "silence_duration": 0,
            "begin_time": 1810,
            "text": "the weather is nice",
            "channel_id": 0,
            "speech_rate": 147,
            "emotion_value": 6.3
        }
    ],
    "task_id": "3f5d4c0c399511e98dc025f34473****",
    "status_code": 21050000,
    "status_text": "SUCCESS",
    "request_time": 1551164878830,
    "solve_time": 1551164879230,
    "biz_duration": 3049
}