mcpField
A
azure-text-to-speech

azure-text-to-speech

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

azure-text-to-speech について

OpenMontageでAzureのニューラル音声合成を使い、ナレーションを作成するスキルです。音声選択、韻律制御、設定、セグメント単位の利用方法を扱い、Piperを既定のオフライン経路およびフォールバックとして説明しています。

主な機能

  1. 01Azureニューラル音声合成
  2. 02多言語音声の選択
  3. 03速度・ピッチ・スタイル制御
  4. 04MP3またはWAV出力
  5. 05同期REST生成

活用シーン

  1. 01動画セクション用のナレーション作成
  2. 02多言語テキストに合う音声の選択
  3. 03ナレーションの速度やスタイル調整
  4. 04個別の音声セグメントの再生成

MCP 対応

OpenMontageは`azure_tts`ツールでAzure TTSを提供し、`tts_selector`から検出できます。任意で利用するクラウドTTSプロバイダーです。

インストール

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

$npx skills add https://github.com/calesthio/openmontage --skill azure-text-to-speech

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

詳細

Azure AI Speech — テキスト読み上げ

Azure のニューラル TTSでナレーションを生成します。高品質な多言語音声、SSML によるプロソディ制御、express-as スタイルに対応し、REST の /cognitiveservices/v1 エンドポイントから同期的に提供されます(トークン交換、Blob ストレージ、ジョブのポーリングは不要です)。OpenMontage では、これは azure_tts ツール(capability=tts、provider=azure)として利用できます。オプションのクラウド TTS プロバイダーです。AZURE_SPEECH_KEY が設定されている場合は、高品質なクラウドナレーションに優先して使用してください。ローカルの piper_tts は引き続きデフォルトのオフライン経路であり、Azure を利用できない場合のフォールバックです。ボイスクローニングには引き続き elevenlabs_tts を使用します。

ドキュメント:REST テキスト読み上げ · 音声ギャラリー

セットアップ

azure_stt と同じ Speech リソースを使用します。1 つのキーとリージョンで、STT と TTS の両方を利用できます。Azure portal で Speech リソースを作成し、その Keys and Endpoint ページからキーとリージョンをコピーしてください。

export AZURE_SPEECH_KEY=your_speech_resource_key
export AZURE_SPEECH_REGION=eastus        # your resource's region
# export AZURE_TTS_ENDPOINT=https://...  # optional: full custom TTS host
#   (the TTS host is https://<region>.tts.speech.microsoft.com — a different
#    subdomain than the STT endpoint, hence the separate override var)

AZURE_SPEECH_KEY と、AZURE_SPEECH_REGION または AZURE_TTS_ENDPOINT のいずれかが設定されると、azure_tts は AVAILABLE と報告します。

パイプラインでの使用

通常どおり tts_selector 経由でルーティングしてください(azure_tts は自動検出されます)。または、ユーザーが Azure の使用を承認している場合は、プロバイダーツールを直接呼び出してください。

from tools.tool_registry import registry
registry.discover()
tts = registry._tools["azure_tts"]

result = tts.execute({
    "text": "Every design decision in this dashboard has a reason.",
    "voice": "andrew",                 # alias or full Azure short name
    "rate": "-4%",                     # slightly slower for narration
    # "style": "narration-professional",  # for voices that support styles
    "output_path": "projects/my-video/assets/audio/seg_001.mp3",
    "output_format": "mp3",            # or "wav" (48kHz PCM) for mixing
})

azure_tts が利用できない(キーがない)場合やエラーが発生した場合は、宣言されたチェーンに従ってフォールバックしてください:elevenlabs_tts → openai_tts → piper_tts。

音声の選択

厳選した候補リスト(voice パラメーターでエイリアスを指定できます):

エイリアス音声特徴
andrewen-US-AndrewMultilingualNeural温かく、自信にあふれ、会話的 — デフォルト。創業者や解説者向けの語り口
brandonen-US-BrandonMultilingualNeural低めで、落ち着いた語り口
avaen-US-AvaMultilingualNeural自信にあふれた、明るい女性の声
guyen-US-GuyNeural説得力のある語り口
jennyen-US-JennyNeural親しみやすく、明瞭

有効な Azure 音声のショートネームは、そのまま指定できます(例:de-DE-KatjaNeural)。Multilingual 音声は英語以外のテキストにも適しています。SSML を正しく適用するため、テキストの言語に合わせて locale を設定してください。

重要なパラメーター

  • rate / pitch — SSML のプロソディです。ナレーションは少し速度を落とす("-4%" から "-8%")と、通常は最も聞きやすくなります。音声の調整が必要な場合を除き、ピッチは "0%" のままにしてください。
  • style — 対応する音声で使用できる express-as スタイルです(narration-professional、calm、newscast)。Azure は未対応のスタイルを無視するため、一括処理の前にサンプルを聴いてください。
  • output_format — 納品には mp3(48kHz/192kbit)、後続処理のためにセグメントを audio_mixer に渡す場合は wav(48kHz PCM)を使用します。
  • 決定性:音声と SSML を固定すると、再生成した音声は実質的に同一になります。セット全体を録り直さずに、個々のセグメントを安全に再生成できます。

コスト

Azure ニューラル TTS の Standard レベルは、およそ 100 万文字あたり $16(約 1,000 文字あたり $0.016、150 語のナレーションセグメントで約 $0.015)です。ツールはコストトラッカー用に、呼び出しごとの cost_usd を報告します。最新の料金については、Azure AI Speech の料金を参照してください。

制限とヒント

  • execute の呼び出し 1 回につき、ナレーションセグメントは 1 つです。1 つの長大な段落にまとめるのではなく、(アセット段階の慣例に従って)スクリプトのセクションごとに生成してください。小さなセグメントはシーンのタイミングにきれいに合わせられ、再生成のコストも低くなります。
  • 同期エンドポイントのリクエスト上限は音声 10 分です。これは、OpenMontage が生成するどのセグメントよりもはるかに長い時間です。
  • テキストは自動的に XML エスケープされます。事前にエスケープしたり、SSML で囲んだりしないでください。プレーンテキストと rate/pitch/style パラメーターを渡してください。
  • 品質を確認するには、スクリプト全体を一括処理する前に、最初に生成したセグメントを聴いてください(音声やスタイルが適切かどうかは創作上の判断です。Decision Communication Contract に従って、提案段階で明示してください)。

コメント