Agent Skills by ALSEL
汎用音声・動画・メディア⭐ リポ 47品質スコア 86/100

audiowaveform

オーディオファイルから波形ビジュアライゼーションを生成します。波形画像の作成、オーディオプレーヤーのビジュアライゼーション構築、Webプレーヤー向けの波形データ生成、ポッドキャストエピソードのプレビュー作成、オーディオサムネイルの生成、ソーシャルメディア向けの波形PNG出力、JSONフォーマットでのピークデータ抽出、オーディオ処理パイプラインへの波形生成統合など、ユーザーのリクエストに対応します。audiowaveform CLIの使用、JSON/バイナリデータ出力、Webプレーヤー統合に対応しています。

description の原文を見る

Generate waveform visualizations from audio files. Use when a user asks to create waveform images, build audio player visualizations, generate waveform data for web players, create podcast episode previews, build audio thumbnails, render waveform PNGs for social media, extract peak data as JSON, or integrate waveform generation into audio processing pipelines. Covers audiowaveform CLI, JSON/binary data output, and web player integration.

SKILL.md 本文

Audiowaveform

概要

BBCの audiowaveform ツールを使用してオーディオファイルからウェーブフォーム可視化を生成します。PNG/SVG ウェーブフォーム画像をレンダリングし、ピークデータを JSON または バイナリ形式で出力して、Web ベースのオーディオプレイヤー(wavesurfer.js、peaks.js)に対応します。ポッドキャストプレイヤー、音楽プラットフォーム、ソーシャルメディアのオーディオプレビュー、およびオーディオウェーブフォームを表示するあらゆる UI に最適です。

使用方法

ステップ1: インストール

# Ubuntu/Debian
apt install -y audiowaveform

# macOS
brew install audiowaveform

# ソースからのインストール(リポジトリにない場合)
apt install -y cmake g++ libmad0-dev libsndfile1-dev libgd-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev
git clone https://github.com/bbc/audiowaveform.git
cd audiowaveform && mkdir build && cd build
cmake .. && make && make install

# 確認
audiowaveform --version

ステップ2: ウェーブフォーム画像を生成

基本的な PNG ウェーブフォーム:

audiowaveform -i episode.wav -o waveform.png

カスタマイズされたウェーブフォーム:

audiowaveform -i episode.mp3 -o waveform.png \
  --width 1800 \
  --height 200 \
  --colors audacity \
  --background-color ffffff \
  --waveform-color 3b82f6 \
  --axis-label-color 666666 \
  --border-color ffffff \
  --zoom auto

カラースキーム:

  • audacity — 古典的な Audacity のルック
  • カスタム: 16進数で --waveform-color--background-color を使用

ソーシャルメディア用高解像度(1200x630 — OG 画像サイズ):

audiowaveform -i episode.wav -o social-preview.png \
  --width 1200 --height 630 \
  --background-color 1a1a2e \
  --waveform-color 00d4ff \
  --no-axis-labels

特定の時間範囲:

audiowaveform -i episode.wav -o clip.png \
  --start 60 --end 180 \
  --width 800 --height 150

チャネルの分離(ステレオ):

audiowaveform -i stereo.wav -o waveform.png --split-channels

ステップ3: ウェーブフォームデータを生成(JSON)

クライアント側でウェーブフォームをレンダリングする Web プレイヤー向け:

# JSON 出力(ピークスデータ)
audiowaveform -i episode.wav -o peaks.json \
  --pixels-per-second 20 \
  --bits 8

# バイナリ形式(ファイルサイズが小さい)
audiowaveform -i episode.wav -o peaks.dat \
  --pixels-per-second 20 \
  --bits 8

JSON 構造:

{
  "version": 2,
  "channels": 1,
  "sample_rate": 44100,
  "samples_per_pixel": 2205,
  "bits": 8,
  "length": 1200,
  "data": [0, 45, -3, 67, 12, 89, ...]
}

ピクセル/秒のガイドライン:

  • 20 — エピソード全体の概要に最適(ポッドキャスト、1〜2時間)
  • 50 — 楽曲の詳細表示(3〜5分)
  • 100 — 非常に詳細、短いクリップ向け
  • 200+ — ウェーブフォーム編集精度

ステップ4: Web プレイヤー統合

wavesurfer.js を使用:

<div id="waveform"></div>
<button onclick="wavesurfer.playPause()">Play/Pause</button>

<script src="https://unpkg.com/wavesurfer.js@7"></script>
<script>
const wavesurfer = WaveSurfer.create({
  container: "#waveform",
  waveColor: "#3b82f6",
  progressColor: "#1d4ed8",
  cursorColor: "#ef4444",
  barWidth: 2,
  barRadius: 2,
  barGap: 1,
  height: 80,
  responsive: true,
  // 事前に生成されたピークスを使用して即座にレンダリング
  peaks: null, // JSON から読み込まれます
  url: "/audio/episode.mp3",
});

// 事前に生成されたピークスを読み込み(クライアント側のデコーディングをスキップ)
fetch("/waveforms/episode-peaks.json")
  .then(r => r.json())
  .then(data => {
    wavesurfer.load("/audio/episode.mp3", [data.data]);
  });
</script>

peaks.js(BBC)を使用:

<div id="zoomview-container"></div>
<div id="overview-container"></div>

<script src="https://unpkg.com/peaks.js"></script>
<script>
const audioElement = document.getElementById("audio");

Peaks.init({
  containers: {
    zoomview: document.getElementById("zoomview-container"),
    overview: document.getElementById("overview-container"),
  },
  mediaElement: audioElement,
  dataUri: {
    json: "/waveforms/episode-peaks.json",
  },
  zoomLevels: [256, 512, 1024, 2048],
  overview: {
    waveformColor: "#3b82f6",
    playedWaveformColor: "#1d4ed8",
  },
  zoomview: {
    waveformColor: "#3b82f6",
    playedWaveformColor: "#1d4ed8",
  },
}, (err, peaks) => {
  if (err) console.error(err);
  // ピークスインスタンスの準備完了
});
</script>

ステップ5: バッチ処理とパイプライン

すべてのエピソード向けのウェーブフォームを生成:

#!/bin/bash
# generate-waveforms.sh
AUDIO_DIR="./episodes"
OUT_DIR="./waveforms"
mkdir -p "$OUT_DIR"

for f in "$AUDIO_DIR"/*.{mp3,wav}; do
  [ -f "$f" ] || continue
  base=$(basename "$f" | sed 's/\.[^.]*$//')
  
  # PNG プレビュー
  audiowaveform -i "$f" -o "$OUT_DIR/${base}.png" \
    --width 1200 --height 150 \
    --background-color ffffff --waveform-color 3b82f6

  # Web プレイヤー向け JSON ピークス
  audiowaveform -i "$f" -o "$OUT_DIR/${base}.json" \
    --pixels-per-second 20 --bits 8

  # ソーシャルメディアプレビュー
  audiowaveform -i "$f" -o "$OUT_DIR/${base}-social.png" \
    --width 1200 --height 630 \
    --background-color 0f172a --waveform-color 38bdf8 --no-axis-labels

  echo "✅ $base"
done

ステップ6: フォーマット間の変換

# バイナリ → JSON
audiowaveform -i peaks.dat -o peaks.json

# JSON → PNG(事前計算されたデータからレンダリング)
audiowaveform -i peaks.json -o waveform.png \
  --width 1200 --height 200 \
  --zoom auto

# 生のオーディオ → 複数の出力
audiowaveform -i input.wav -o peaks.dat --bits 8 --pixels-per-second 20
audiowaveform -i peaks.dat -o overview.png --width 2000 --height 100
audiowaveform -i peaks.dat -o detail.png --start 60 --end 120 --width 800 --height 200

例1: ポッドキャスト Web サイト向けウェーブフォームプレビューを生成

ユーザープロンプト: 「50個のポッドキャストエピソードが MP3 ファイルで ./episodes/ にあります。PNG ウェーブフォームプレビューと JSON ピークデータを各々生成して、wavesurfer.js で Next.js サイトで使えるようにしてください。」

エージェントは以下を実行します:

  1. audiowaveform がインストールされているか確認し、必要に応じて apt または brew でインストールします。
  2. 出力ディレクトリ ./waveforms/png/./waveforms/json/ を作成します。
  3. ./episodes/ 内のすべての .mp3 ファイルを反復処理し、ブランドカラーを使用した 1200x150 の PNG と各エピソードに対して20ピクセル/秒で 8 ビット深度の JSON ピークスファイルを生成する bash ループを記述します。
  4. バッチスクリプトを実行し、生成されたウェーブフォームの数を報告します。
  5. クライアント側のオーディオデコーディングなしで事前生成された JSON ピークスを読み込んで、即座のウェーブフォームレンダリングを実現する wavesurfer.js コードスニペットを表示します。

例2: ソーシャルメディアオーディオプレビュー画像を作成

ユーザープロンプト: 「ポッドキャストエピソードを Twitter で共有するための OG 画像サイズのウェーブフォームグラフィックスが必要です。ダークバックグラウンド、シアンウェーブフォーム、軸ラベルなし。エピソード10から15です。」

エージェントは以下を実行します:

  1. エピソードディレクトリ内のエピソード10〜15のオーディオファイルを識別します。
  2. 各ファイルに対して audiowaveform を --width 1200 --height 630 (OG 画像寸法)、--background-color 0f172a--waveform-color 06b6d4 、および --no-axis-labels で実行します。
  3. 出力ファイルを episode-10-social.png から episode-15-social.png として保存します。
  4. ファイルが生成されたことを確認し、ファイルサイズを記録します。

ガイドライン

  • コマンドを実行する前に audiowaveform がインストールされているか必ず確認してください。ほとんどのデフォルトパッケージマネージャーでは利用できないため、古いシステムではソースから構築が必要な場合があります。
  • Web プレイヤー向けの JSON ピークスデータには --pixels-per-second 20--bits 8 と共に使用してください。より高い値は概要ウェーブフォーム向けの不要に大きなファイルを生成します。
  • クライアント側でのオーディオデコーディングではなく、サーバー側でウェーブフォーム JSON を事前生成してください。これによりリスナーの Web 上での読み込み時間が数秒になるのを排除します。
  • ソーシャルメディア画像の場合、--no-axis-labels を使用して、小さなサイズで視覚を乱す時間マーカーなしのクリーナーなグラフィックスを生成してください。
  • 大規模なバッチを処理する場合、まずバイナリ .dat 形式を生成し、その後 .dat ファイルから PNG と JSON をレンダリングして、オーディオの複数回の読み込みを避けてください。

ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
TerminalSkills
リポジトリ
TerminalSkills/skills
ライセンス
Apache-2.0
最終更新
2026/5/4

Source: https://github.com/TerminalSkills/skills / ライセンス: Apache-2.0

関連スキル

汎用音声・動画・メディア⭐ リポ 1,982

listenhub

あらゆることを説明できます。アイデアをポッドキャスト、解説動画、または音声ナレーションに変換します。 ユーザーが「ポッドキャストを作りたい」「解説動画を作成したい」「これを読み上げてほしい」「画像を生成したい」、または知識を音声・映像形式で共有したいときに使用します。トピックの説明、YouTubeリンク、記事URL、プレーンテキスト、画像プロンプトに対応しています。

by LeoYeAI
汎用音声・動画・メディア⭐ リポ 1,982

best-youtube-video-editor

ClawHub上の「best-youtube-video-editor」スキルは、YouTube クリエイターのコンテンツ制作を革新します。タイムラインや複雑なソフトウェアを必要とせず、会話形式のAI駆動型ビデオ編集が可能です。無音部分のカット、チャプターマーカーの追加、字幕の挿入、ペーシングの調整、エクスポートの最適化——すべてが自然言語の指示で実現します。初回使用時には NemoVideo API を通じて認証情報を自動設定するため、有効化後数秒で編集を開始できます。YouTuber、教育関係者、ポッドキャスター、ブランドチャネル向けに開発され、品質を損なわず高速な納期対応が必要な方に最適です。mp4、mov、avi、webm、mkv 形式に対応しています。

by LeoYeAI
汎用音声・動画・メディア⭐ リポ 27,990

video

ユーザーがAIツールやプログラマティックフレームワークを使用してビデオコンテンツを作成、生成、または制作したい場合に使用します。また、ユーザーが「ビデオ制作」「AIビデオ」「Remotion」「Hyperframes」「HeyGen」「Synthesia」「Veo」「Runway」「Kling」「Pika」「ビデオ生成」「AIアバター」「トーキングヘッドビデオ」「プログラマティックビデオ」「ビデオテンプレート」「解説ビデオ」「プロダクトデモビデオ」「ビデオパイプライン」または「ビデオを作ってほしい」と言及している場合にも使用します。ビデオ作成、生成、制作のワークフロー全般に対応できます。ビデオコンテンツの戦略や投稿内容については「social-content」を、有料ビデオ広告クリエイティブについては「ad-creative」をご参照ください。

by coreyhaines31
汎用音声・動画・メディア⭐ リポ 317

clipify

ビデオから最も面白い瞬間を検出し、スタンドアロンクリップとしてカットできます。オプションで16:9から9:16へのリフォーマット(フェイスパンまたはスプリットスクリーン)に対応し、Opus風の単語ごとのキャプションを焼き込みます。ユーザーが「clipify」「このビデオからクリップをカットして」「これからショーツを作って」「面白い瞬間を見つけて」「9:16にリフレーミングして」「縦型クリップ」と言及したり、ビデオファイルパスを貼り付けてSNS対応のクリップを求める場合に使用します。

by louisedesadeleer
OpenAI音声・動画・メディア⭐ リポ 18,898

speech

ユーザーが音声生成、ナレーション、アクセシビリティ対応の読み上げ、音声プロンプト、またはOpenAI Audio APIによるバッチ音声生成をリクエストした場合に使用します。組み込みボイスを備えたバンドルCLI(`scripts/text_to_speech.py`)を実行でき、ライブ呼び出しには`OPENAI_API_KEY`が必要です。カスタムボイスの作成には対応していません。

by openai
汎用音声・動画・メディア⭐ リポ 2,743

depth-estimation

Depth Anything v2を使用したリアルタイム深度マップのプライバシー変換(CoreML + PyTorch対応) このスキルは、Depth Anything v2モデルを活用して、画像やビデオから取得した深度情報をリアルタイムで処理し、プライバシーを保護しながら変換します。CoreMLとPyTorchの両方に対応しており、エッジデバイスでの高速処理とクラウド環境での柔軟な運用が可能です。顔認識データのぼかしや背景の匿名化など、プライバシー関連の処理を効率的に実行できます。

by SharpAI
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: TerminalSkills · TerminalSkills/skills · ライセンス: Apache-2.0