音声 Node.js SDK で Qwen-Audio-ASR-Filetrans に音声 URL を送信し、非同期タスクの照会と文字起こし結果のダウンロードを行います。
SDK のインストール
Node.js 18 以降が必要です。SDK 0.1.0 パッケージをダウンロードし、プロジェクトで次を実行します。
クイックスタート
コンソールで API キーを取得し、環境変数 DASHSCOPE_API_KEY に設定します。
次のサンプルを example.mjs として保存し、node example.mjs を実行します。
API リファレンス
コンストラクターのオプション
TranscriptionClient のコンストラクターオプション:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
apiKey | string | いいえ | API キー。デフォルトは DASHSCOPE_API_KEY。 |
workspaceId | string | いいえ | ワークスペース ID。デフォルトは DASHSCOPE_WORKSPACE_ID。 |
baseUrl | string | いいえ | サービスホスト名を dashscope-intl.aliyuncs.com(シンガポール)に設定します。 |
model | string | いいえ | モデル ID。デフォルト:qwen-audio-3.1-asr-flash-filetrans。 |
pollIntervalMs | number | いいえ | 照会間隔。デフォルト:3000 ms。 |
pollTimeoutMs | number | いいえ | ポーリングタイムアウト(ms)。デフォルト:600000。 |
requestTimeoutMs | number | いいえ | HTTP リクエストのタイムアウト(ms)。デフォルト:30000。0 で個別のタイムアウトを無効化します。 |
文字起こしパラメーター
transcribe() と submitTask() の第 2 引数は parameters、第 3 引数には context を指定できます。モデルパラメーターの詳細は HTTP API を参照してください。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
fileUrls | string | string[] | はい | 公開アクセス可能な音声 URL。タスクごとに 1 ファイル。 |
parameters.keep_dialect | boolean | いいえ | 方言表現を保持します。デフォルト:false。 |
parameters.vocabulary_id | string | いいえ | 事前コンパイル済み語彙リスト ID。 |
parameters.vocabulary | Record<string, number> | いいえ | 即時語彙。キーは単語、値は重み [1,5] または 50。 |
parameters.channel_id | number[] | いいえ | 音声チャンネルのインデックス。デフォルト:[0]。 |
parameters.special_word_filter | string | Record<string, unknown> | いいえ | 機密語フィルターの設定。JSON 文字列またはオブジェクト。 |
parameters.diarization_enabled | boolean | いいえ | モノラル音声の話者分離。デフォルト:false。 |
parameters.speaker_count | number | いいえ | 話者数の目安:[2,100]。話者分離を有効にする必要があります。 |
parameters.language_hints | string[] | いいえ | 認識言語のヒント。先頭の最大 4 値が有効です。省略時は自動認識します。 |
callOpts.context / submitOpts.context | AsrContextMessage[] | いいえ | 認識コンテキスト。形式は { role, content: [{ type: "input_text", text }] }、role は user または assistant。各ロール最大 5 件、合計 400 文字未満で、対話のターン順に並べます。 |
callOpts.onProgress | (status: string, response: QueryTaskResponse) => void | いいえ | status と元の response を受け取る進行コールバック。 |
主なメソッド
| メソッド | 戻り値 | 説明 |
|---|---|---|
transcribe(fileUrls: string | string[], parameters?: TranscriptionParameters, callOpts?: TranscribeCallOptions) | Promise<TranscriptionJobResult> | 音声を送信し、照会と結果ダウンロードを行います。callOpts にコンテキストと進行コールバックを指定できます。 |
submitTask(fileUrls: string | string[], parameters?: TranscriptionParameters, submitOpts?: TranscriptionSubmitOptions) | Promise<{ taskId: string; taskStatus: string }> | タスクを送信し、ID と初期状態を返します。submitOpts.context でコンテキストを指定します。 |
fetchTask(taskId: string, requestTimeoutMs?: number) | Promise<QueryTaskResponse> | タスクを 1 回照会し、状態と結果 URL を返します。 |
戻り値
| フィールド | 型 | 説明 |
|---|---|---|
taskId | string | タスク ID。 |
taskStatus | string | タスク状態。 |
results | FileTranscriptionResult[] | ファイル結果の一覧。subtaskStatus、text、transcription を含み、失敗時は code、message を含みます。 |
usage | RecognitionUsage | undefined | サービスが返す使用量統計。 |
raw | QueryTaskResponse | 元のタスク照会応答。 |