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

Intelligent Speech Interaction:API リファレンス

最終更新日:Jun 23, 2025

リアルタイム音声認識サービスは、長時間続く音声データストリームを認識します。このサービスは、会議のスピーチやライブストリーミングなど、中断のない音声認識が必要なシナリオに適用されます。

機能

  • パルス符号変調( PCM )でエンコードされた 16 ビットモノラルオーディオファイルをサポートします。

  • 8,000 Hz および 16,000 Hz の音声サンプリングレートをサポートします。

  • 中間結果を返すかどうか、後処理中に句読点を追加するかどうか、および中国語の数字をアラビア数字に変換するかどうかを指定できます。

  • [Intelligent Speech Interaction コンソール] でプロジェクトを管理する際に、異なる言語の音声を認識するための言語モデルを選択できます。詳細については、「プロジェクトの管理」をご参照ください。

    現在サポートされている言語と方言モデルは次のとおりです。

    • 16K ASR (汎用): 中国語(北京語)、英語、広東語、日本語、韓国語、ロシア語、インドネシア語、ベトナム語、マレーシア語、タイ語、ヒンディー語、アラビア語、カザフ語、ドイツ語、スペイン語、フランス語。

    • 8K ASR (電話回線): 中国語(北京語)、英語、広東語、インドネシア語、フィリピン語。

エンドポイント

アクセスタイプ

説明

URL

インターネットからの外部アクセス

このエンドポイントを使用すると、インターネット経由で任意のホストからリアルタイム音声認識サービスにアクセスできます。デフォルトでは、インターネットアクセス URL は SDK に組み込まれています。

wss://nls-gateway-ap-southeast-1.aliyuncs.com/ws/v1

インタラクションプロセス

image
説明

サーバーは、すべての応答の応答ヘッダーに task_id パラメーターを追加して、認識タスクの ID を示します。このパラメーターの値を記録できます。エラーが発生した場合は、チケットを送信してタスク ID とエラーメッセージを報告できます。

1. クライアントの認証

サーバーとの WebSocket 接続を確立するには、クライアントは認証にトークンを使用する必要があります。トークンの取得方法の詳細については、「アクセストークンの取得」をご参照ください。

2. 認識の開始と確認

クライアントは、リアルタイム音声認識を開始するためのリクエストを送信します。サーバーは、リクエストが有効であることを確認します。クライアントがサービスリクエストを送信するには、リクエストパラメーターを設定する必要があります。リクエストパラメーターは、SDK の SpeechTranscriber オブジェクトの set メソッドを使用して設定できます。次の表に、リクエストパラメーターを示します。

パラメーター

タイプ

必須

説明

appkey

String

はい

[Intelligent Speech Interaction コンソール] で作成したプロジェクトの appkey 。

format

String

いいえ

音声コーディング形式。デフォルト値: PCM 。リアルタイム音声認識サービスは、非圧縮 PCM または WAV エンコードされた 16 ビットモノラルオーディオファイルをサポートします。

sample_rate

Integer

いいえ

音声サンプリングレート。単位: Hz 。デフォルト値:16000。このパラメーターを設定した後、[Intelligent Speech Interaction コンソール] でプロジェクトの音声サンプリングレートに適用可能なモデルまたはシーンを指定する必要があります。

enable_intermediate_result

Boolean

いいえ

中間結果を返すかどうかを指定します。デフォルト値: false 。

enable_punctuation_prediction

Boolean

いいえ

後処理中に句読点を追加するかどうかを指定します。デフォルト値: false 。

enable_inverse_text_normalization

Boolean

いいえ

後処理中に逆テキスト正規化( ITN )を有効にするかどうかを指定します。デフォルト値: false 。このパラメーターを true に設定すると、中国語の数字はアラビア数字に変換されます。

説明

ITN は単語には実装されていません。

customization_id

String

いいえ

カスタム言語モデルの ID 。

vocabulary_id

String

いいえ

カスタムホットワードの語彙 ID 。

max_sentence_silence

Integer

いいえ

文の終わりを検出するためのしきい値。無音時間が指定されたしきい値を超えると、システムは文の終わりを決定します。単位:ミリ秒。有効値:200 ~ 2000。デフォルト値:800。

enable_words

Boolean

いいえ

単語に関する情報を返すかどうかを指定します。デフォルト値: false 。

enable_ignore_sentence_timeout

Boolean

いいえ

リアルタイム音声認識における単一文の認識タイムアウトの問題を無視するかどうかを指定します。デフォルト値: false 。

disfluency

Boolean

いいえ

モダリティ粒子と反復的な音声を削除するために、非流暢性検出を有効にするかどうかを指定します。デフォルト値: false 。

vad_model

String

いいえ

サーバーが使用する音声区間検出( VAD )モデルの ID 。デフォルトでは、このパラメーターはリクエストに渡されません。

speech_noise_threshold

float

いいえ

オーディオストリームをノイズとして認識するためのしきい値。有効値:-1 ~ 1。パラメーター値については、次の情報を参照してください。

  • パラメーター値が -1 に近いほど、オーディオストリームが通常の音声として認識される可能性が高くなります。

  • パラメーター値が 1 に近いほど、オーディオストリームがノイズとして認識される可能性が高くなります。

説明

このパラメーターは高度なパラメーターです。パラメーター値を調整する場合は注意してください。パラメーター値を調整した後、テストを実行してください。

3. 音声データの送信と認識

クライアントは、音声データをサーバーに周期的に送信し、サーバーから認識結果を継続的に受信します。

  • SentenceBegin メッセージは、サーバーが文の始まりを検出したことを示します。リアルタイム音声認識サービスは、VAD を使用して文の始まりと終わりを決定します。たとえば、サーバーは次の応答を返します。

    {
            "header": {
                    "namespace": "SpeechTranscriber",
                    "name": "SentenceBegin",
                    "status": 20000000,
                    "message_id": "a426f3d4618447519c9d85d1a0d1****",
                    "task_id": "5ec521b5aa104e3abccf3d361822****",
                    "status_text": "Gateway:SUCCESS:Success."
            },
            "payload": {
                    "index": 1,
                    "time": 0
            }
    }

    次の表に、header オブジェクトのパラメーターを示します。

    パラメーター

    タイプ

    説明

    namespace

    String

    メッセージの名前空間。

    name

    String

    メッセージの名前。SentenceBegin メッセージは、サーバーが文の始まりを検出したことを示します。

    status

    Integer

    状態コード。リクエストが成功したかどうかを示します。詳細については、このトピックの「サービス状態コード」セクションを参照してください。

    status_text

    String

    状態メッセージ。

    task_id

    String

    認識タスクのグローバル一意識別子( GUID )。トラブルシューティングを容易にするために、このパラメーターの値を記録します。

    message_id

    String

    メッセージの ID 。

    次の表に、payload オブジェクトの結果パラメーターを示します。

    パラメーター

    タイプ

    説明

    index

    Integer

    文のシーケンス番号。1 から始まります。

    time

    Integer

    処理された音声データの期間。単位:ミリ秒。

  • TranscriptionResultChanged メッセージは、中間結果が取得されたことを示します。 enable_intermediate_result パラメーターが true に設定されている場合、サーバーは複数の TranscriptionResultChanged メッセージを送信して中間結果を返します。たとえば、サーバーは次の中間結果を返します。

    {
            "header": {
                    "namespace": "SpeechTranscriber",
                    "name": "TranscriptionResultChanged",
                    "status": 20000000,
                    "message_id": "dc21193fada84380a3b6137875ab****",
                    "task_id": "5ec521b5aa104e3abccf3d361822****",
                    "status_text": "Gateway:SUCCESS:Success."
            },
            "payload": {
                    "index": 1,
                    "time": 1835,
                    "result": "Sky in Beijing",
                    "confidence": 1.0,
                    "words": [{
                            "text": "Sky",
                            "startTime": 630,
                            "endTime": 930
                    }, {
                            "text":"in",
                            "startTime": 930,
                            "endTime": 1110
                    }, {
                            "text": "Beijing",
                            "startTime": 1110,
                            "endTime": 1140
                    }]
            }
    }       

    TranscriptionResultChanged メッセージの header オブジェクトのパラメーターは、SentenceBegin メッセージの header オブジェクトのパラメーターと似ています。 name パラメーターの値は TranscriptionResultChanged で、中間結果が取得されたことを示します。

    次の表に、payload オブジェクトの結果パラメーターを示します。

    パラメーター

    タイプ

    説明

    index

    Integer

    文のシーケンス番号。1 から始まります。

    time

    Integer

    処理された音声データの期間。単位:ミリ秒。

    result

    String

    文の認識結果。

    words

    List< Word >

    文の単語情報。単語情報は、enable_words パラメーターが true に設定されている場合にのみ返されます。

    confidence

    Double

    文の認識結果の信頼度。有効値:0.0 ~ 1.0。値が大きいほど、信頼度が高くなります。

  • SentenceEnd メッセージは、サーバーが文の終わりを検出し、文の認識結果を返したことを示します。たとえば、サーバーは次の応答を返します。

    {
            "header": {
                    "namespace": "SpeechTranscriber",
                    "name": "SentenceEnd",
                    "status": 20000000,
                    "message_id": "c3a9ae4b231649d5ae05d4af36fd****",
                    "task_id": "5ec521b5aa104e3abccf3d361822****",
                    "status_text": "Gateway:SUCCESS:Success."
            },
            "payload": {
                    "index": 1,
                    "time": 1820,
                    "begin_time": 0,
                    "result": "Weather in Beijing",
                    "confidence": 1.0,
                    "words": [{
                            "text": "Weather",
                            "startTime": 630,
                            "endTime": 930
                    }, {
                            "text":"in",
                            "startTime": 930,
                            "endTime": 1110
                    }, {
                            "text": "Beijing",
                            "startTime": 1110,
                            "endTime": 1380
                    }]
            }
    }
    

    SentenceEnd メッセージの header オブジェクトのパラメーターは、SentenceBegin メッセージの header オブジェクトのパラメーターと似ています。 name パラメーターの値は SentenceEnd で、サーバーが文の終わりを検出したことを示します。

    次の表に、payload オブジェクトの結果パラメーターを示します。

    パラメーター

    タイプ

    説明

    index

    Integer

    文のシーケンス番号。1 から始まります。

    time

    Integer

    処理された音声データの期間。単位:ミリ秒。

    begin_time

    Integer

    サーバーが文の SentenceBegin メッセージを返した時刻。単位:ミリ秒。

    result

    String

    文の認識結果。

    words

    List< Word >

    文の単語情報。単語情報は、enable_words パラメーターが true に設定されている場合にのみ返されます。

    confidence

    Double

    文の認識結果の信頼度。有効値:0.0 ~ 1.0。値が大きいほど、信頼度が高くなります。

    次の表に、words オブジェクトの結果パラメーターを示します。

    パラメーター

    タイプ

    説明

    text

    String

    単語のテキスト。

    startTime

    Integer

    文における単語の開始時刻。単位:ミリ秒。

    endTime

    Integer

    文における単語の終了時刻。単位:ミリ秒。

4. 認識タスクの完了

クライアントは、すべての音声データが送信されたことをサーバーに通知します。サーバーは認識タスクを完了し、タスクが完了したことをクライアントに通知します。

サービス状態コード

各応答には、サービス状態コードを示す status フィールドが含まれています。次の表に、一般的なエラーコード、ゲートウェイエラーコード、構成エラーコード、およびリアルタイム音声認識エラーコードを示します。

一般的なエラーコード

エラーコード

説明

解決策

40000001

クライアントの認証に失敗したために返されるエラーメッセージ。

クライアントが使用しているトークンが正しいか、有効であるかを確認してください。

40000002

リクエストが無効であるために返されるエラーメッセージ。

クライアントから送信されたリクエストが要件を満たしているかどうかを確認してください。

403

トークンの有効期限が切れているか、リクエストに無効なパラメーターが含まれているために返されるエラーメッセージ。

クライアントが使用しているトークンが有効であるかを確認してください。次に、パラメーター値が有効であるかを確認してください。

40000004

クライアントのアイドル状態がタイムアウトしたために返されるエラーメッセージ。

クライアントが長時間(たとえば 10 秒)サーバーにデータを送信していないかどうかを確認してください。

40000005

リクエスト数が上限を超えたために返されるエラーメッセージ。

同時接続数またはクエリ/秒( QPS )が上限を超えているかどうかを確認してください。同時接続数が上限を超えている場合は、[Intelligent Speech Interaction] を試用版から商用版にアップグレードすることをお勧めします。サービスを商用版にアップグレードした場合は、より高い同時実行性のためにより多くのリソースを購入することをお勧めします。

40000000

クライアントエラーが発生したために返されるエラーメッセージ。これはデフォルトのクライアントエラーコードです。

エラーメッセージに基づいてエラーを解決するか、チケットを送信してください。

41010120

クライアントタイムアウトエラーが発生したために返されるエラーメッセージ。

クライアントが少なくとも 10 秒連続してサーバーにデータを送信していないかどうかを確認してください。

50000000

サーバーエラーが発生したために返されるエラーメッセージ。これはデフォルトのサーバーエラーコードです。

エラーコードがたまに返される場合は、無視してください。エラーコードが複数回返される場合は、チケットを送信してください。

50000001

内部呼び出しエラーが発生したために返されるエラーメッセージ。

エラーコードがたまに返される場合は、無視してください。エラーコードが複数回返される場合は、チケットを送信してください。

52010001

内部呼び出しエラーが発生したために返されるエラーメッセージ。

エラーコードがたまに返される場合は、無視してください。エラーコードが複数回返される場合は、チケットを送信してください。

ゲートウェイエラーコード

エラーコード

説明

解決策

40010001

メソッドがサポートされていないために返されるエラーメッセージ。

SDK を使用している場合は、チケットを送信してください。

40010002

命令がサポートされていないために返されるエラーメッセージ。

SDK を使用している場合は、チケットを送信してください。

40010003

命令形式が無効であるために返されるエラーメッセージ。

SDK を使用している場合は、チケットを送信してください。

40010004

クライアントが予期せず切断されたために返されるエラーメッセージ。

サーバーがリクエストされたタスクを完了する前に、クライアントが切断されているかどうかを確認してください。

40010005

タスクが命令をサポートしていない状態にあるために返されるエラーメッセージ。

現在の状態のタスクで命令がサポートされているかどうかを確認してください。

構成エラーコード

エラーコード

説明

解決策

40020105

アプリケーションが存在しないために返されるエラーメッセージ。

ルートを解決して、アプリケーションが存在するかどうかを確認してください。

40020106

指定された appkey とトークンが一致しないために返されるエラーメッセージ。

アプリケーションの appkey が正しいか、トークンと同じ Alibaba Cloud アカウントに属しているかを確認してください。

40020503

RAM ユーザー認証に失敗したために返されるエラーメッセージ。

Alibaba Cloud アカウントを使用して、RAM ユーザーに pctowap open platform ( POP ) API へのアクセスを承認します。

リアルタイム音声認識エラーコード

エラーコード

説明

解決策

41040201

クライアントが 10 秒連続してサーバーにデータを送信しないために返されるエラーメッセージ。

ネットワークを確認するか、送信する必要があるビジネスデータがないかを確認してください。

41040202

クライアントがデータを高い伝送速度で送信し、サーバーのすべてのリソースを消費するために返されるエラーメッセージ。

クライアントが適切な伝送速度(たとえば、1:1 のリアルタイムファクター)でデータを送信しているかどうかを確認してください。

41040203

クライアントが無効な音声コーディング形式で音声データを送信するために返されるエラーメッセージ。

音声データの音声コーディング形式を SDK でサポートされている形式に変換してください。

41040204

クライアントが正しい順序でメソッドを呼び出さないために返されるエラーメッセージ。

クライアントが他のメソッドを呼び出す前に、クライアントが関連するメソッドを呼び出してリクエストを送信しているかどうかを確認してください。

41040205

指定された max_sentence_silence パラメーターが無効であるために返されるエラーメッセージ。

max_sentence_silence パラメーターの値が 200 ~ 2000 の範囲内であるかどうかを確認してください。

41050008

指定された音声サンプリングレートが選択したモデルの音声サンプリングレートと一致しないために返されるエラーメッセージ。

サービスコールに指定された音声サンプリングレートが、コンソールで作成されたプロジェクトの appkey にバインドされている自動音声認識( ASR )モデルの音声サンプリングレートと一致するかどうかを確認してください。

51040101

サーバーで内部エラーが発生したために返されるエラーメッセージ。

エラーメッセージに基づいてエラーを解決してください。

51040103

リアルタイム音声認識サービスが利用できないために返されるエラーメッセージ。

リアルタイム音声認識タスクの数が上限を超えているかどうかを確認してください。

51040104

リアルタイム音声認識のリクエストがタイムアウトしたために返されるエラーメッセージ。

リアルタイム音声認識サービスのログを確認してください。

51040105

リアルタイム音声認識サービスの呼び出しに失敗したために返されるエラーメッセージ。

リアルタイム音声認識サービスが有効になっているか、ポートが正しく動作しているかを確認してください。

51040106

リアルタイム音声認識サービスの負荷分散に失敗し、クライアントがリアルタイム音声認識サービスの IP アドレスを取得できないために返されるエラーメッセージ。

VPC 内のリアルタイム音声認識サーバーが正しく動作しているかどうかを確認してください。