mcpField
D
dashscope

dashscope

github.com/calesthioクリエイティブ・メディア72.7k857 回インストール今日更新
リポジトリ

dashscope について

dashscope は、OpenMontage から DashScope の画像生成、テキスト読み上げ、音声認識を利用するスキルです。DashScope ネイティブのエンドポイントを使い、文字単位のタイムスタンプ付き認識にも対応します。

主な機能

  1. 01サイズと枚数を指定した画像生成
  2. 02テキストの音声合成
  3. 03単語単位のタイムスタンプ付き音声認識
  4. 04モデルと言語設定の指定

活用シーン

  1. 01動画プロジェクト用の画像素材を作成
  2. 02音声と声を選んでナレーションを制作
  3. 03公開音声 URL から字幕用タイミングを生成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/calesthio/openmontage --skill dashscope

インストール後、Claude Code で/dashscopeを入力して読み込まれたか確認します。

詳細

DashScope

.env に DASHSCOPE_API_KEY が必要です。https://dashscope.aliyun.com/ で取得してください。

現在の API

重要: DashScope の /compatible-mode/v1/ がサポートしているのは /chat/completions と /embeddings のみです。画像生成、TTS、ASR はすべて DashScope ネイティブのエンドポイントを使用し、OpenAI 互換のパスは使用しません。

3 つのツールはいずれも Authorization: Bearer $DASHSCOPE_API_KEY を使用します。

画像生成
POST https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
  • モデル:qwen-image-2.0-pro(デフォルト)、qwen-image-max、wan2.7-image、z-image-turbo
  • ボディ:{model, input: {messages: [{role: "user", content: [{text: "prompt"}]}]}, parameters: {size: "W*H", n, prompt_extend, watermark}}
  • サイズ形式にはアスタリスクを使用します: "1024x1024" ではなく "1024*1024"
  • レスポンス:output.choices[0].message.content[0].image(URL、有効期間は約 24 時間)。別途ダウンロードが必要です
テキスト読み上げ
POST https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

画像生成と同じエンドポイントを使用し、ボディは異なります。

  • モデル:qwen3-tts-flash(デフォルト)、qwen3-tts-instruct-flash、qwen-tts-2025-05-22
  • ボディ:{model, input: {text, voice: "Cherry", language_type: "Auto"}}
  • レスポンス:output.audio.url(WAV、有効期間は約 24 時間)。別途ダウンロードが必要です
単語レベルのタイムスタンプ付き ASR
POST https://dashscope.aliyuncs.com/api/v1/services/audio/asr/transcription
Header: X-DashScope-Async: enable
  • モデル:qwen3-asr-flash-filetrans(qwen3-asr-flash ではありません。同期バージョンには単語のタイムスタンプがありません)
  • ボディ:{model, input: {file_url: "https://public-url/audio.mp3"}, parameters: {enable_words: true, language_hints: ["zh","en"]}}
  • task_id が返されます → SUCCEEDED になるまで GET /api/v1/tasks/{task_id} をポーリングします → output.result.transcription_url をダウンロードします → transcripts[].sentences[].words[] を含む JSON が得られます
  • begin_time/end_time のタイムスタンプの単位は ミリ秒です。ツールが秒に正規化します

OpenMontage での使用方法

セレクター経由の画像生成
from tools.graphics.image_selector import ImageSelector

result = ImageSelector().execute({
    "preferred_provider": "dashscope",
    "prompt": "一只猫坐在沙发上",
    "output_path": "projects/my-video/assets/images/cat.png",
})
セレクター経由の TTS
from tools.audio.tts_selector import TTSSelector

result = TTSSelector().execute({
    "preferred_provider": "dashscope",
    "text": "如果 AI 真的会改变未来,普通人到底该怎么参与?",
    "voice": "Cherry",
    "output_path": "projects/my-video/assets/audio/narration.wav",
})
ASR を直接使用(字幕用の単語タイムスタンプ)
from tools.analysis.dashscope_asr import DashscopeAsr

result = DashscopeAsr().execute({
    "audio_url": "https://example.com/narration.wav",
    "output_path": "projects/my-video/assets/audio/transcription.json",
})

# result.data["words"] is a flat list of {text, begin_time_seconds, end_time_seconds}

推奨ワークフロー

  1. 画像: まずサンプルを生成します。prompt_extend: true(デフォルト)を確認してください。DashScope がプロンプトを書き換えて、より良い結果を得られるようにします。プロンプトへの忠実な準拠が必要な場合は無効にしてください。
  2. TTS: ナレーション全体を生成する前に、10~15 秒のサンプルを生成します。全体を生成する前に、音声と話すペースを確認してください。
  3. ASR: 音声は 誰でもアクセスできる URL に置く必要があります。まず S3 などの公開ホストにアップロードしてください。ローカルパスは明確なエラーとともに拒否されます。
  4. 字幕: result.data["words"] から作成します。各単語には begin_time_seconds と end_time_seconds があります。固定の文字数ではなく、言語の意味に基づいて単語を字幕フレーズにまとめてください。

パラメーター

画像(dashscope_image)
  • prompt(必須):テキストプロンプト
  • model:デフォルトは qwen-image-2.0-pro
  • size:デフォルトは "1024*1024"。区切り文字はアスタリスクで、「x」ではありません
  • n:画像の枚数(1~6)
  • negative_prompt:避けたい要素(最大 500 文字)
  • prompt_extend:デフォルトは true。より良い結果を得るためにプロンプトを自動で書き換えます
  • watermark:デフォルトは false
  • seed:再現性を確保するために使用します
TTS(dashscope_tts)
  • text(必須):合成するテキスト(qwen3-tts-flash では最大 600 文字)
  • model:デフォルトは qwen3-tts-flash
  • voice:デフォルトは "Cherry"。ほかの音声には "Ethan"、"Chelsie" などがあります
  • language_type:デフォルトは "Auto"。"Chinese"、"English"、"Japanese"、"Korean"
  • instructions:自然言語による読み上げ指示(qwen3-tts-instruct-flash でのみ使用できます)
ASR(dashscope_asr)
  • audio_url(必須):誰でもアクセスできる URL が必要です
  • model:qwen3-asr-flash-filetrans(単語のタイムスタンプをサポートする唯一のモデル)
  • language_hints:デフォルトは ["zh", "en"]
  • enable_words:デフォルトは true。単語レベルのタイムスタンプに必要です
  • poll_interval_seconds:デフォルトは 5.0
  • timeout_seconds:デフォルトは 300

トラブルシューティング

  • 画像サイズのエラー: "WxH" ではなく、アスタリスクを使った "W*H" を指定してください。例:"2048*2048"。
  • TTS の音声 URL がない: output.audio.url を確認してください。空の場合は、モデル名または音声が間違っている可能性があります。
  • ASR の「ファイルにアクセスできません」エラー: audio_url はパブリックにアクセス可能である必要があります。DashScope サーバーがファイルを取得するため、ローカルパスや認証が必要な URL は使用できません。
  • ASR のポーリングがタイムアウトする: timeout_seconds を増やしてください(デフォルトは 300)。長い音声ファイルは文字起こしに時間がかかります。
  • ASR で単語のタイムスタンプがない: enable_words: true が設定され、モデルが qwen3-asr-flash-filetrans(同期型の qwen3-asr-flash ではない)であることを確認してください。
  • 認証エラー(401): DASHSCOPE_API_KEY が設定されていることを確認してください。Authorization: Bearer $KEY ヘッダーを使用してください。

安全性

API キーをログ、メタデータ、パッチ、プロジェクト成果物に出力または書き込まないでください。.env.example には空の変数名のみを記載してください。このツールの _safe_error() メソッドはエラーメッセージからキーをマスキングします。

コメント