SAG Skill - ElevenLabs TTSをmacOS標準sayコマンド風UIで提供するClawdbot拡張機能
Clawdbot向けSAG Skillを利用して、ElevenLabs Text-to-Speech APIによる高品質音声合成をmacOS標準sayコマンド風のインターフェースで実現する方法を解説します。
SAG Skill - ElevenLabs TTSをmacOS標準sayコマンド風UIで提供するClawdbot拡張機能
Clawdbot向けのSAG Skillが提供するsagコマンドにより、ElevenLabs Text-to-Speech(TTS)APIを使用した高品質音声合成をmacOS標準のsayコマンドに似たインターフェースで実行できる。本スキルは、複数音声モデルの選択、音声タグによる感情表現、SSML互換の一時停止制御、ローカル再生機能を提供する。
概要
SAG Skillは、ElevenLabs社が提供するTTS APIをコマンドライン環境から利用するためのツールである。Clawdbotのスキルシステムに統合されており、AIエージェントが自然言語テキストを音声に変換し、ローカルスピーカーで再生できる仕組みを提供する。
公式サイト(https://sag.sh)によれば、本ツールはHomebrewパッケージとして配布されており、macOSの`say`コマンドと互換性のあるユーザーエクスペリエンスを提供する設計となっている。
技術的仕様
システム要件
- macOS、Linux、またはWindows(WSL2推奨)
sagバイナリ(Homebrew経由でインストール)- ElevenLabs APIキー(環境変数で設定)
インストール方法
Clawdbot環境では、以下のコマンドでインストールが実行される。
brew install steipete/tap/sag
インストール後、sagコマンドがシステムPATHに追加される。
環境変数(必須)
export ELEVENLABS_API_KEY="your-api-key-here"
代替環境変数:
SAG_API_KEY: CLIツール固有の設定
音声デフォルト設定:
ELEVENLABS_VOICE_ID: デフォルト音声IDSAG_VOICE_ID: CLI固有のデフォルト音声ID
主要機能
1. 基本的なテキスト読み上げ
最もシンプルな使用方法。
sag "Hello there"
2. 音声選択
利用可能な音声一覧を取得し、特定の音声を指定して再生する。
# 音声一覧表示
sag voices
# 特定の音声で再生
sag speak -v "Roger" "Hello from Roger"
3. 音声モデル選択
ElevenLabsは複数の音声モデルを提供しており、用途に応じて選択できる。
eleven_v3: 感情表現重視(デフォルト)eleven_multilingual_v2: 多言語対応、安定性重視eleven_flash_v2_5: 高速レスポンス重視
sag --model eleven_flash_v2_5 "Quick response test"
4. 音声タグ(v3モデル)
テキスト行の先頭に音声タグを配置することで、感情表現や話し方を制御できる。
サポートされる音声タグ:
[whispers]: ささやき声[shouts]: 大声[sings]: 歌うように[laughs]: 笑い声[starts laughing]: 笑い始める[sighs]: ため息[exhales]: 息を吐く[sarcastic]: 皮肉っぽく[curious]: 好奇心を持って[excited]: 興奮して[crying]: 泣きながら[mischievously]: いたずらっぽく
sag "[whispers] keep this quiet. [short pause] ok?"
5. 一時停止制御
v3モデルでは独自の一時停止記法を使用する。
sag "First sentence. [pause] Second sentence. [long pause] Third sentence."
v2/v2.5モデルではSSML <break>タグをサポート。
sag --model eleven_multilingual_v2 'First sentence. <break time="1.5s" /> Second sentence.'
6. テキスト正規化
数値、URL、単位の読み上げ方法を制御する。
# 自動正規化(デフォルト)
sag --normalize auto "Visit https://example.com at 3:30 PM"
# 正規化無効
sag --normalize off "API version 3.5.2"
7. 言語バイアス設定
多言語テキストの正規化ルールを指定する。
sag --lang de "Guten Tag, wie geht es Ihnen?"
実装例
例1: Clawdbotチャット音声返信
#!/bin/bash
# AIエージェントが音声で返答
sag -v Clawd -o /tmp/voice-reply.mp3 "Your request has been processed successfully."
# 返信にメディアファイルを添付
# MEDIA:/tmp/voice-reply.mp3
例2: キャラクター音声生成
#!/bin/bash
# 狂気の科学者風の音声
sag -v "Mad Scientist" -o /tmp/scientist.mp3 "[excited] Eureka! [short pause] The experiment... [laughs] it's working! [shouts] We've done it!"
例3: 多言語ナレーション
#!/bin/bash
# 英語とドイツ語の混合テキスト
sag --model eleven_multilingual_v2 --lang en "Welcome to our presentation. [pause] Willkommen zu unserer Präsentation."
例4: Node.js統合による動的音声生成
const { exec } = require('child_process');
function generateSpeech(text, voice = 'Clawd', outputPath = '/tmp/speech.mp3') {
return new Promise((resolve, reject) => {
const command = `sag -v "${voice}" -o "${outputPath}" "${text}"`;
exec(command, (error, stdout, stderr) => {
if (error) {
reject(error);
return;
}
resolve(outputPath);
});
});
}
// 使用例
generateSpeech('[excited] Hello, world!', 'Clawd', '/tmp/greeting.mp3')
.then(path => console.log(`Audio generated: ${path}`))
.catch(err => console.error(`Error: ${err.message}`));
例5: バッチ処理による複数音声ファイル生成
#!/bin/bash
# テキストファイルから複数の音声ファイルを生成
while IFS= read -r line; do
filename=$(echo "$line" | md5sum | cut -d' ' -f1)
sag -o "/tmp/audio/${filename}.mp3" "$line"
done < input.txt
ユースケース
1. AIエージェントの音声応答
Clawdbotエージェントがユーザーからの質問に対して音声で返答する環境を構築できる。特に、映画のあらすじ説明や物語の朗読など、長文の音声化に有効。
2. アクセシビリティ支援
視覚障害者向けに、Webページやドキュメントの内容を音声で提供するシステムを構築できる。
3. 教育コンテンツ生成
語学学習教材や発音ガイドを音声ファイルとして自動生成できる。
4. ポッドキャスト・オーディオブック制作
テキスト原稿から高品質なナレーション音声を生成し、コンテンツ制作の効率化を実現する。
5. スマートホーム音声通知
Home Assistantなどと連携し、家電の状態やイベントを音声で通知する仕組みを構築できる。
制限事項・セキュリティ考慮事項
制限事項
- APIキー必須: ElevenLabs APIキーがない場合、ツールは動作しない
- SSML制限: v3モデルは
<phoneme>タグに未対応(v2/v2.5もsagでは公開されていない) - 音声タグの互換性: 音声タグ(例:
[whispers])はv3モデル専用であり、v2/v2.5では効果がない - API料金: ElevenLabs APIは従量課金制であり、大量の音声生成はコストが発生する
- 2026年2月時点の料金: 約$0.30/1,000文字(v3モデル)
セキュリティ考慮事項
-
APIキーの管理: 環境変数
ELEVENLABS_API_KEYに機密情報が含まれるため、以下の対策を推奨.bashrcや.zshrcでの設定を避け、専用の認証情報管理ツール(1Password、Vaultなど)を使用- 開発環境と本番環境でAPIキーを分離
-
音声ファイルの保管: 生成された音声ファイルに個人情報や機密情報が含まれる場合、適切なアクセス制御を設定
chmod 600 /tmp/sensitive-audio.mp3 -
API使用量監視: ElevenLabsダッシュボードでAPI使用量を定期的に確認し、不正利用を検知
-
コンテンツフィルタリング: ユーザー入力をそのまま音声化する場合、悪意のあるテキスト(ヘイトスピーチ、誹謗中傷など)のフィルタリングが必要
参考リンク
- SAG公式サイト: https://sag.sh
- SAG GitHubリポジトリ: https://github.com/steipete/sag
- ElevenLabs公式サイト: https://elevenlabs.io/
- ElevenLabs API Documentation: https://docs.elevenlabs.io/
- ElevenLabs Pricing: https://elevenlabs.io/pricing
- Clawdbot公式サイト: https://clawdbot.io/
本記事の情報は2026年2月15日時点のものです。SAG Skillの機能、コマンド仕様、インストール方法、ElevenLabs APIの料金体系は変更される可能性があります。最新情報は公式サイトおよびドキュメントをご確認ください。
Related Articles
OpenClaw Skills Ranking February 2026: Planning Skills and Security Suite Dominate Top 10
GitHub OpenClaw skills ranking shows awesome-openclaw-skills (16,139 stars), Manus-style planning implementation planning-with-files (14,000 stars), and Obsidian integration (9,998 stars) claiming top 3 positions.
OpenClaw v2026.2.17: Claude Sonnet 4.6 Support, 1M Context, Slack/Telegram Enhancements
OpenClaw releases major update with Claude Sonnet 4.6 and 1M context window support, Slack native streaming, Telegram inline button styles, iOS Share Extension, and critical security fixes (OC-09) among 100+ changes.
Cursor CLI Update: Plan Handoff to Cloud, Mermaid ASCII Diagrams, and Quality-of-Life Improvements
Cursor updates its CLI with plan-to-cloud handoff from the terminal, inline ASCII rendering of Mermaid diagrams, and a range of tooling and reliability improvements.
Popular Articles
Claude Code v2.1.93 Released - Deferred Permission Decisions, Flicker-Free Rendering, and More
Anthropic releases Claude Code v2.1.93 with deferred permission decisions for PreToolUse hooks, flicker-free rendering option, PermissionDenied hook, and named subagent typeahead support.
Claude Code v2.1.92 Released - forceRemoteSettingsRefresh, Bedrock Setup Wizard, and More
Anthropic releases Claude Code v2.1.92 with forceRemoteSettingsRefresh policy setting, AWS Bedrock setup wizard, /cost command improvements, and numerous bug fixes.
Claude Code v2.1.84 Release - PowerShell Tool Preview and Environment Configuration Enhancements
Claude Code v2.1.84 introduces PowerShell tool for Windows, new environment variable overrides for model selection, idle session handling improvements, and various stability fixes.
Latest Articles
Claude Code v2.1.93 Released - Deferred Permission Decisions, Flicker-Free Rendering, and More
Anthropic releases Claude Code v2.1.93 with deferred permission decisions for PreToolUse hooks, flicker-free rendering option, PermissionDenied hook, and named subagent typeahead support.
Claude Code v2.1.92 Released - forceRemoteSettingsRefresh, Bedrock Setup Wizard, and More
Anthropic releases Claude Code v2.1.92 with forceRemoteSettingsRefresh policy setting, AWS Bedrock setup wizard, /cost command improvements, and numerous bug fixes.
Claude Code v2.1.91 Released - MCP Tool Result Persistence and Improved Edit Tool
Claude Code v2.1.91 introduces MCP tool result persistence override, improved shell execution controls, and enhanced Edit tool efficiency.