whisper
OpenAIの汎用音声認識モデルで、99言語に対応し、文字起こし・英語への翻訳・言語識別が可能です。tinyからlargeまで6種類のモデルサイズ(39M〜1550M パラメータ)を提供し、音声テキスト変換・ポッドキャストの文字起こし・多言語音声処理などに活用できます。堅牢な多言語ASRを必要とする場面に最適です。
description の原文を見る
OpenAI's general-purpose speech recognition model. Supports 99 languages, transcription, translation to English, and language identification. Six model sizes from tiny (39M params) to large (1550M params). Use for speech-to-text, podcast transcription, or multilingual audio processing. Best for robust, multilingual ASR.
SKILL.md 本文
Whisper - ロバストな音声認識
OpenAIのマルチリンガル音声認識モデル。
Whisper を使用する場合
使用するべき場合:
- 音声テキスト変換の文字起こし(99言語)
- ポッドキャスト/動画の文字起こし
- 会議記録の自動化
- 英語への翻訳
- ノイズのある音声の文字起こし
- マルチリンガル音声処理
指標:
- GitHub スター 72,900+
- 99言語対応
- 680,000時間の音声データで学習
- MIT ライセンス
代わりに使用検討:
- AssemblyAI: マネージド API、スピーカー識別対応
- Deepgram: リアルタイムストリーミング ASR
- Google Speech-to-Text: クラウドベース
クイックスタート
インストール
# Python 3.8-3.11が必要
pip install -U openai-whisper
# ffmpeg が必要
# macOS: brew install ffmpeg
# Ubuntu: sudo apt install ffmpeg
# Windows: choco install ffmpeg
基本的な文字起こし
import whisper
# モデルをロード
model = whisper.load_model("base")
# 文字起こし
result = model.transcribe("audio.mp3")
# テキストを出力
print(result["text"])
# セグメントにアクセス
for segment in result["segments"]:
print(f"[{segment['start']:.2f}s - {segment['end']:.2f}s] {segment['text']}")
モデルサイズ
# 利用可能なモデル
models = ["tiny", "base", "small", "medium", "large", "turbo"]
# 特定のモデルをロード
model = whisper.load_model("turbo") # 最速、良好な品質
| Model | Parameters | English-only | Multilingual | Speed | VRAM |
|---|---|---|---|---|---|
| tiny | 39M | ✓ | ✓ | ~32x | ~1 GB |
| base | 74M | ✓ | ✓ | ~16x | ~1 GB |
| small | 244M | ✓ | ✓ | ~6x | ~2 GB |
| medium | 769M | ✓ | ✓ | ~2x | ~5 GB |
| large | 1550M | ✗ | ✓ | 1x | ~10 GB |
| turbo | 809M | ✗ | ✓ | ~8x | ~6 GB |
推奨: 速度と品質のバランスは turbo、プロトタイピング用は base
文字起こしオプション
言語指定
# 言語を自動検出
result = model.transcribe("audio.mp3")
# 言語を指定(高速化)
result = model.transcribe("audio.mp3", language="en")
# 対応: en, es, fr, de, it, pt, ru, ja, ko, zh、他89言語
タスク選択
# 文字起こし(デフォルト)
result = model.transcribe("audio.mp3", task="transcribe")
# 英語に翻訳
result = model.transcribe("spanish.mp3", task="translate")
# 入力: スペイン語の音声 → 出力: 英語テキスト
初期プロンプト
# コンテキストで精度向上
result = model.transcribe(
"audio.mp3",
initial_prompt="This is a technical podcast about machine learning and AI."
)
# 以下に有効:
# - 専門用語
# - 固有名詞
# - ドメイン特有の語彙
タイムスタンプ
# 単語レベルのタイムスタンプ
result = model.transcribe("audio.mp3", word_timestamps=True)
for segment in result["segments"]:
for word in segment["words"]:
print(f"{word['word']} ({word['start']:.2f}s - {word['end']:.2f}s)")
温度のフォールバック
# 信頼度が低い場合、異なる温度で再試行
result = model.transcribe(
"audio.mp3",
temperature=(0.0, 0.2, 0.4, 0.6, 0.8, 1.0)
)
コマンドラインの使用
# 基本的な文字起こし
whisper audio.mp3
# モデルを指定
whisper audio.mp3 --model turbo
# 出力形式
whisper audio.mp3 --output_format txt # プレーンテキスト
whisper audio.mp3 --output_format srt # 字幕
whisper audio.mp3 --output_format vtt # WebVTT
whisper audio.mp3 --output_format json # JSONでタイムスタンプ付き
# 言語
whisper audio.mp3 --language Spanish
# 翻訳
whisper spanish.mp3 --task translate
バッチ処理
import os
audio_files = ["file1.mp3", "file2.mp3", "file3.mp3"]
for audio_file in audio_files:
print(f"Transcribing {audio_file}...")
result = model.transcribe(audio_file)
# ファイルに保存
output_file = audio_file.replace(".mp3", ".txt")
with open(output_file, "w") as f:
f.write(result["text"])
リアルタイム文字起こし
# ストリーミング音声の場合、faster-whisper を使用
# pip install faster-whisper
from faster_whisper import WhisperModel
model = WhisperModel("base", device="cuda", compute_type="float16")
# ストリーミング文字起こし
segments, info = model.transcribe("audio.mp3", beam_size=5)
for segment in segments:
print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")
GPU アクセラレーション
import whisper
# 利用可能な場合、自動的に GPU を使用
model = whisper.load_model("turbo")
# CPU を強制
model = whisper.load_model("turbo", device="cpu")
# GPU を強制
model = whisper.load_model("turbo", device="cuda")
# GPU で 10-20倍高速化
他のツールとの統合
字幕生成
# SRT 字幕を生成
whisper video.mp4 --output_format srt --language English
# 出力: video.srt
LangChain との連携
from langchain.document_loaders import WhisperTranscriptionLoader
loader = WhisperTranscriptionLoader(file_path="audio.mp3")
docs = loader.load()
# RAG で文字起こしを使用
from langchain_chroma import Chroma
from langchain_openai import OpenAIEmbeddings
vectorstore = Chroma.from_documents(docs, OpenAIEmbeddings())
動画から音声を抽出
# ffmpeg を使用して音声を抽出
ffmpeg -i video.mp4 -vn -acodec pcm_s16le audio.wav
# その後、文字起こし
whisper audio.wav
ベストプラクティス
- turbo モデルを使用 - 英語の速度と品質のバランスが最適
- 言語を指定 - 自動検出より高速
- 初期プロンプントを追加 - 専門用語を改善
- GPU を使用 - 10-20倍高速化
- バッチ処理 - より効率的
- WAV に変換 - 互換性向上
- 長い音声を分割 - <30分チャンク
- 言語対応を確認 - 言語により品質が異なる
- faster-whisper を使用 - openai-whisper より 4倍高速
- VRAM を監視 - ハードウェアに合わせてモデルサイズをスケール
パフォーマンス
| Model | Real-time factor (CPU) | Real-time factor (GPU) |
|---|---|---|
| tiny | ~0.32 | ~0.01 |
| base | ~0.16 | ~0.01 |
| turbo | ~0.08 | ~0.01 |
| large | ~1.0 | ~0.05 |
Real-time factor: 0.1 = リアルタイムより 10倍高速
言語対応
主要対応言語:
- 英語 (en)
- スペイン語 (es)
- フランス語 (fr)
- ドイツ語 (de)
- イタリア語 (it)
- ポルトガル語 (pt)
- ロシア語 (ru)
- 日本語 (ja)
- 韓国語 (ko)
- 中国語 (zh)
完全リスト: 全99言語
制限事項
- ハルシネーション - テキストが繰り返されたり、作成される可能性あり
- 長時間音声の精度 - 30分以上の音声で低下
- スピーカー識別 - 話者分離非対応
- アクセント - 品質が異なる
- 背景ノイズ - 精度に影響可能性
- リアルタイム遅延 - ライブキャプション非対応
リソース
- GitHub: https://github.com/openai/whisper ⭐ 72,900+
- 論文: https://arxiv.org/abs/2212.04356
- モデルカード: https://github.com/openai/whisper/blob/main/model-card.md
- Colab: リポジトリ内で利用可能
- ライセンス: MIT
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- davila7
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/davila7/claude-code-templates / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。