dialogue-audio について
dialogue-audio は、inference.sh CLI から Dia TTS を使って複数話者の対話音声を作るスキルです。音声コンテンツ制作者向けに、話者タグや感情表現、間の調整、台本構成を説明します。
主な機能
- 01Dia TTS による対話音声の生成
- 02最大 2 人の話者に対応
- 03句読点と音声指示による感情表現
- 04句読点と文の長さによるペース調整
- 05インタビュー・チュートリアル・議論の構成例
活用シーン
- 01インタビュー音声の制作
- 02チュートリアル形式の対話生成
- 03感情の変化を含む議論音声の制作
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ inference-sh/ skills --skill dialogue-audioインストール後、Claude Code で/dialogue-audioを入力して読み込まれたか確認します。
詳細
belt CLI スキルをインストール:
npx skills add belt-sh/cli
対話音声
inference.sh CLI 経由で Dia TTS を使い、リアルな複数話者の対話を作成します。
クイックスタート
inference.sh CLI(
belt)が必要です。インストール手順
belt login
# Two-speaker conversation
belt app run falai/dia-tts --input '{
"prompt": "[S1] Have you tried the new feature yet? [S2] Not yet, but I heard it saves a ton of time. [S1] It really does. I cut my workflow in half. [S2] Okay, I am definitely trying it today."
}'
話者タグ
Dia TTS では、2 人の話者を区別するために [S1] と [S2] を使います。
| タグ | 役割 | 音声 |
|---|---|---|
[S1] | 話者 1 | 音声 A が自動的に割り当てられます |
[S2] | 話者 2 | 音声 B が自動的に割り当てられます |
ルール:
- 話者が交代するたびに、必ずタグから始めてください
- タグは大文字にしてください。
[s1]ではなく[S1]を使います - 1 回の生成で使える話者は最大 2 人です
- セッション中、各話者の音声は一貫して保たれます
感情と表現の制御
Dia TTS は、句読点や非音声の合図を解釈して感情を表現します。
句読点の効果
| 句読点 | 効果 | 例 |
|---|---|---|
. | 中立的で断定的な表現、中程度の間 | "これは重要です。" |
! | 強調、興奮、活気 | "これはすごいです!" |
? | 上昇調、疑問 | "本当にそうですか?" |
... | ためらい、語尾を濁す、長い間 | "うまくいくと思ったのですが……うまくいきませんでした。" |
, | 短い息継ぎの間 | "まず分析します。それから行動します。" |
— または -- | 遮り、または話題の転換 | "言おうと思っていたのですが――やっぱりいいです。" |
非音声の音
Dia TTS は、括弧内に記述した音の表現に対応しています。
(laughs) — laughter
(sighs) — exasperation or relief
(clears throat) — attention-getting pause
(whispers) — softer delivery
(gasps) — surprise
感情表現の例
# Excited conversation
belt app run falai/dia-tts --input '{
"prompt": "[S1] Guess what happened today! [S2] What? Tell me! [S1] We hit ten thousand users! [S2] (gasps) No way! That is incredible! [S1] I know... I still cannot believe it."
}'
# Serious/thoughtful dialogue
belt app run falai/dia-tts --input '{
"prompt": "[S1] We need to talk about the timeline. [S2] (sighs) I know. It is tight. [S1] Can we cut anything from the scope? [S2] Maybe... but it would mean dropping the analytics dashboard. [S1] That is a tough trade-off."
}'
# Teaching/explaining
belt app run falai/dia-tts --input '{
"prompt": "[S1] So how does it actually work? [S2] Great question. Think of it like a pipeline. Data comes in on one end, gets processed in the middle, and comes out transformed on the other side. [S1] Like an assembly line? [S2] Exactly! Each step adds something."
}'
ペースの制御
間の目安
| 方法 | 間の長さ | 用途 |
|---|---|---|
コンマ , | 約 0.3 秒 | 節の間、項目の列挙 |
ピリオド . | 約 0.5 秒 | 文と文の間 |
省略記号 ... | 約 1.0 秒 | 劇的な間、思考、ためらい |
| 新しい話者タグ | 約 0.3 秒 | 自然な話者交代の間 |
話す速さの制御
- 短い文 = 速く感じるペース
- コンマを含む長い文 = 落ち着いた、思慮深いペース
- 質問の後に回答を続ける = 会話が弾む、テンポのよいやり取り
# Fast-paced, energetic
belt app run falai/dia-tts --input '{
"prompt": "[S1] Ready? [S2] Ready. [S1] Let us go! Three features. Five minutes. [S2] Hit it! [S1] Feature one: real-time sync."
}'
# Slow, contemplative
belt app run falai/dia-tts --input '{
"prompt": "[S1] I have been thinking about this for a while... and I think we need to change direction. [S2] What do you mean? [S1] The market has shifted. What worked last year... is not working now."
}'
会話構成のパターン
インタビュー形式
belt app run falai/dia-tts --input '{
"prompt": "[S1] Welcome to the show. Today we have a special guest. Tell us about yourself. [S2] Thanks for having me! I am a product designer, and I have been building tools for creators for about ten years. [S1] What got you started in design? [S2] Honestly? I was terrible at coding but loved making things look good. (laughs) So design was the natural path."
}'
チュートリアル/解説
belt app run falai/dia-tts --input '{
"prompt": "[S1] Can you walk me through the setup process? [S2] Sure. Step one, install the CLI. It takes about thirty seconds. [S1] And then? [S2] Step two, run the login command. It will open your browser for authentication. [S1] That sounds simple. [S2] It is! Step three, you are ready to run your first app."
}'
ディベート/ディスカッション
belt app run falai/dia-tts --input '{
"prompt": "[S1] I think we should go with option A. It is faster to implement. [S2] But option B scales better long-term. [S1] Sure, but we need something shipping this quarter. [S2] Fair point... what if we do A now with a migration path to B? [S1] That could work. Let us prototype it."
}'
ポストプロダクションのヒント
音量の正規化
両方の話者の音量をそろえてください。一方の声が大きい場合:
# Merge with balanced audio
belt app run infsh/video-audio-merger --input '{
"video_file": "talking-head.mp4",
"audio_file": "dialogue.mp3"
}'
背景音/音楽の追加
# Merge dialogue with background music (no inference.sh app mixes audio; use ffmpeg locally)
ffmpeg -i dialogue.mp3 -stream_loop -1 -i background-music.mp3 -filter_complex \
"[1]volume=0.15[bg];[0][bg]amix=inputs=2:duration=first" mixed.mp3
長い会話の分割
約 30 秒を超える会話は、セグメントに分けて生成します。
# Segment 1: Introduction
belt app run falai/dia-tts --input '{
"prompt": "[S1] Welcome back to another episode..."
}'
# Segment 2: Main content
belt app run falai/dia-tts --input '{
"prompt": "[S1] So let us dive into today s topic..."
}'
# Segment 3: Wrap-up
belt app run falai/dia-tts --input '{
"prompt": "[S1] Great conversation today..."
}'
# Merge all segments (no inference.sh app concatenates audio; use ffmpeg locally)
ffmpeg -i segment1.mp3 -i segment2.mp3 -i segment3.mp3 -filter_complex \
"[0][1][2]concat=n=3:v=0:a=1" conversation.mp3
スクリプト作成のヒント
| すること | しないこと |
|---|---|
| 人が話すように書く | 人が文章を書くように書く |
| 短い文(15 語未満)にする | 長くて学術的な文にする |
| 短縮形("can't"、"won't")を使う | 形式的な表現("cannot"、"will not")を使う |
| 自然なつなぎ言葉("So,"、"Well,")を入れる | すべての文を完璧な形に整える |
| 文の長さに変化をつける | すべての文を同じ長さにする |
| 相づち("Exactly!"、"Hmm.")を入れる | 一方的な独白にする |
| 生成前に声に出して読む | 自然に聞こえると思い込む |
よくある間違い
| 間違い | 問題 | 修正方法 |
|---|---|---|
| 3 文を超える独白 | 会話ではなく講義のように聞こえます | やり取りに分割します |
| 感情表現に変化がない | 平板でロボットのような話し方になります | 句読点や非音声の合図を使います |
| 話者タグがない | 音声が交互に切り替わりません | 毎回の話者交代を [S1] または [S2] から始めます |
| 形式的な書き言葉 | 話し言葉として不自然に聞こえます | 短縮形や短い文を使います |
| 話題の間に間がない | 慌ただしく感じます | ... または場面転換を使います |
| ずっと同じテンション | 単調になります | 活気のある場面と落ち着いた場面に変化をつけます |
関連スキル
# ElevenLabs dialogue (22+ voices, voice direction)
npx skills add inference-sh/skills@elevenlabs-dialogue
npx skills add inference-sh/skills@text-to-speech
npx skills add inference-sh/skills@ai-podcast-creation
npx skills add inference-sh/skills@ai-avatar-video
すべてのアプリを表示:belt app list
コメント
Markdown 対応