ListenHubSkills

音声認識(ASR)

coli CLI で音声ファイルをローカルで文字起こし — 多言語対応、AI 整形はオプション、完全オフライン、API キー不要。

coli asr を使って音声ファイルを文字起こしします。ローカルの音声認識モデルによって完全に自分のマシン上で動作するため、ListenHub API キーは不要で、モデルのダウンロードが済めばインターネット接続も不要です。

ListenHub API キーは不要です。 この Skill はローカルでのみ動作し、ListenHub API を呼び出しません。listenhub とは別のツールである coli CLI が必要です。下記の前提条件を参照してください。

トリガー

/asr でこの Skill を呼び出すか、次のいずれかのフレーズを使用します:

フレーズ言語
transcribe / transcribe this英語
ASR英語
转录 / 识别音频中国語
语音转文字中国語
把这段音频转成文字中国語

前提条件

この Skill は listenhub CLI ではなく coli CLI に依存します。一度だけインストールしてください:

npm install -g @marswave/coli

任意ですが推奨: 圧縮フォーマット(MP4、M4A、AAC など)に対応するため ffmpeg をインストールしてください:

# macOS
brew install ffmpeg

# Ubuntu / Debian
sudo apt install ffmpeg

WAV ファイルは ffmpeg なしで文字起こしできます。それ以外のフォーマットはデコードに ffmpeg が必要です。

初回実行時のモデルダウンロード

認識モデルは CLI に同梱されていません。初回の文字起こし時に、coli が必要なモデル(約 60 MB)を ~/.coli/models/ へ自動でダウンロードします。ダウンロードはモデルごとに一度だけ行われ、少し時間がかかります — モデルがまだ存在しない場合は、AI がダウンロード中であることを知らせます。以降の実行ではキャッシュ済みのモデルを再利用し、すぐに開始します。

ダウンロード後の文字起こしは完全にオフラインです。音声がマシンの外に出ることはなく、ネットワーク通信も発生しません。

簡単な例

Transcribe this file: meeting.m4a

AI が前提条件を確認し、設定を読み込み、モデルと整形(polish)の設定を確認したうえで、ローカルで文字起こしを実行します。結果は会話内にそのまま表示されます。

モデル

この Skill には 2 つの認識モデルが同梱されています。音声に含まれる言語と、感情などの追加シグナルが必要かどうかで選んでください。

モデル対応言語感情 / イベントの検出備考
sensevoice(デフォルト)中国語、英語、日本語、韓国語、広東語あり多言語コンテンツや、言語が不明な場合に推奨
whisper-tiny.en英語のみなしより小さい英語専用モデル

音声が確実に英語で軽量なモデルを使いたい場合を除き、sensevoice を使ってください。sensevoice はデフォルトであり、汎用的な選択としても優れています — 5 言語をカバーし、下記の言語・感情・音声イベントのシグナルを返します。

検出されるメタデータ

JSON 出力で実行すると、sensevoice は文字起こしテキスト以外の情報も返します。結果には次が含まれます:

  • lang — 検出された発話言語
  • emotion — 検出された発話の感情
  • event — 検出された非音声の音イベント(例:背景音)
  • duration — 音声の長さ(秒)

AI は文字起こしと併せて langemotionduration を提示し、Markdown エクスポートのヘッダーにも書き込みます。whisper-tiny.en は文字起こしと duration を返しますが、感情やイベントの検出は行いません。

AI 整形

整形(polish)は、coli がテキストを返した後に AI が生の文字起こしへ適用する後処理です。デフォルトで有効です。

モード得られる結果
整形あり(デフォルト)AI が生の文字起こしを書き換え、句読点を修正し、フィラーワードを取り除き、読みやすさを高めます — 意味を変えたり、要約したり、言い換えたりはしません
整形なしモデルが返した生の文字起こしをそのまま、編集せずに出力します

生の文字起こしは常に保持されます。整形が有効でも、AI に未編集の原文を表示するよう頼めます。単発の文字起こしだけ整形を無効にするには、リクエストにその旨を書いてください(例:"transcribe interview.wav, no polish")。デフォルトを変更するには、この Skill を再設定してください。

出力

文字起こしは会話内にそのまま表示され、その後に検出されたメタデータが続きます:

Transcription complete

{transcript text}

─────────────────
lang: {lang} · emotion: {emotion} · duration: {duration}s

整形が有効な場合は、整形後のバージョンが AI により調整されたものとして表示されます。

Markdown エクスポート

結果を提示した後、AI は文字起こしを Markdown ファイルとしてカレントディレクトリに保存するか尋ねます:

{audio-filename}-transcript.md

このファイルには、ソースファイル・日付・モデル・長さ・検出された言語を記録した front-matter ヘッダーの下に、文字起こし(整形が有効な場合は整形後のバージョン)が入ります:

---
source: meeting.m4a
date: 2026-06-25
model: sensevoice
duration: 312s
lang: zh
---

{transcript text}

設定

設定はプロジェクトごとに .listenhub/asr/config.json に保存され、初回利用時に妥当なデフォルト値(sensevoice、整形あり)で自動作成されます。使い始めるのに設定は不要です。デフォルトを変更したい場合は AI に再設定を頼んでください。モデルと整形の選択を順に案内し、回答を保存します。

設定項目デフォルト選択肢
modelsensevoicesensevoicewhisper-tiny.en
polishtruetruefalse

CLI コマンド

この Skill は coli asr コマンドを実行します。AI が検出されたメタデータを読めるよう、JSON 出力を使用します:

# Transcribe with JSON output (returns text, lang, emotion, event, duration)
coli asr -j --model sensevoice "meeting.m4a"

# English-only, lighter model
coli asr -j --model whisper-tiny.en "talk.wav"

インストール済みバージョンが現在サポートするフラグの一覧は coli asr --help で確認してください。

組み合わせ

この Skill が生成する文字起こしテキストは、同じ会話内で他の Skill にそのまま渡せます:

  • 録音したインタビューを文字起こしし、参考資料として /podcast に渡す
  • ボイスメモを文字起こしし、/explainer の入力として使う

より多くの連携ワークフローについては Skill の組み合わせ を参照してください。

API リファレンス

なし。この Skill は API 呼び出しを行いません — ローカルの coli asr コマンドのみを使用します。

このページの内容