mcpField
A
asr

asr

github.com/marswaveaiクリエイティブ・メディア811.3k 回インストール5 週間前に更新
リポジトリ

asr について

`coli asr` で音声ファイルをオフライン文字起こしするスキルです。多言語対応または英語専用のモデルを選べ、必要に応じて AI で文字起こしを整えられます。

主な機能

  1. 01ローカルモデルによるオフライン文字起こし
  2. 02複数言語の音声認識
  3. 03AI による任意のテキスト整形
  4. 04言語と音声メタデータの出力

活用シーン

  1. 01会議録音の文字起こし
  2. 02インタビュー音声のテキスト化
  3. 03文字起こし結果の Markdown 出力

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/marswaveai/skills --skill asr

インストール後、Claude Code で/asrを入力して読み込まれたか確認します。

詳細

使用する場合

  • ユーザーが音声ファイルをテキストに書き起こしたい場合
  • ユーザーが音声ファイルのパスを指定して、書き起こしを依頼した場合
  • ユーザーが「转录」、「识别」、「transcribe」、「语音转文字」と言った場合

使用しない場合

  • ユーザーがテキストから音声を合成したい場合(/tts を使用)
  • ユーザーがポッドキャストや解説動画を作成したい場合(/podcast または /explainer を使用)

目的

ローカルの音声認識モデルを使って完全にオフラインで動作する coli asr により、音声ファイルをテキストに書き起こします。API キーは不要です。中国語、英語、日本語、韓国語、広東語(sensevoice モデル)、または英語のみ(whisper モデル)に対応しています。

現在の CLI オプションとサポート対象のフラグは、coli asr --help を実行して確認してください。

絶対的な制約

  • シェルスクリプトは使用しないでください。直接コマンドのみを使用してください。
  • やり取りを始める前に、必ず shared/config-pattern.md に従って設定を読み込んでください。
  • やり取りのパターンは shared/cli-patterns.md に従ってください。
  • 一度に複数の質問をしないでください。
複数選択の各ステップでは、必ず AskUserQuestion ツールを使用してください。選択肢を通常のテキストとして表示してはいけません。一度に1つの質問をし、次に進む前にユーザーの回答を待ってください。 すべてのパラメーターを収集したら、書き起こしを実行する前に内容を要約し、ユーザーに確認を求めてください。

やり取りの流れ

ステップ 0:前提条件の確認

設定を行う前に、環境を確認してください(ユーザーには通知しません)。

COLI_OK=$(which coli 2>/dev/null && echo yes || echo no)
FFMPEG_OK=$(which ffmpeg 2>/dev/null && echo yes || echo no)
MODELS_DIR="$HOME/.coli/models"
MODELS_OK=$([ -d "$MODELS_DIR" ] && ls "$MODELS_DIR" | grep -q sherpa && echo yes || echo no)
問題対応
coli が見つからない中断します。まず npm install -g @marswave/coli を実行するようユーザーに伝えてください
ffmpeg が見つからない警告します(WAV ファイルは引き続き動作します)。brew install ffmpeg / sudo apt install ffmpeg を提案してください
モデルがダウンロードされていない初回の書き起こし時に、モデル(約60MB)が ~/.coli/models/ に自動ダウンロードされることをユーザーに伝えてください

coli が見つからない場合は、ここで中断して先に進まないでください。

ステップ 0:設定

shared/config-pattern.md のステップ 0(質問なしで起動)に従ってください。

ファイルが存在しない場合 — デフォルト設定で黙って作成し、そのまま進みます:

mkdir -p ".listenhub/asr"
echo '{"model":"sensevoice","polish":true}' > ".listenhub/asr/config.json"
CONFIG_PATH=".listenhub/asr/config.json"
CONFIG=$(cat "$CONFIG_PATH")

設定に関する質問はしないでください。 適切なデフォルト(sensevoice モデル、磨き上げを有効)を使って、やり取りの流れに直接進んでください。

ファイルが存在する場合 — 設定を黙って読み込み、そのまま進みます:

CONFIG_PATH=".listenhub/asr/config.json"
[ ! -f "$CONFIG_PATH" ] && CONFIG_PATH="$HOME/.listenhub/asr/config.json"
CONFIG=$(cat "$CONFIG_PATH")
設定フロー(ユーザーから再設定を依頼された場合のみ)

ユーザーが明示的に再設定を依頼した場合にのみ実行してください。現在の設定を表示します:

当前配置 (asr):
  模型:sensevoice / whisper-tiny.en
  润色:开启 / 关闭

次の順に尋ねます:

  1. model:「デフォルトでどの音声認識モデルを使用しますか?」

    • 「sensevoice(推奨)」— 中国語、英語、日本語、韓国語、広東語に対応し、言語、感情、音声イベントを検出できます
    • 「whisper-tiny.en」— 英語のみ
  2. polish:「書き起こし後に AI でテキストを整えますか?(句読点の修正、フィラーの削除、読みやすさの向上)」

    • 「はい(推奨)」→ polish: true
    • 「いいえ、元の書き起こしを保持する」→ polish: false

回答をすべて収集した後、一度に保存します。

ステップ 1:音声ファイルを取得

ユーザーがファイルパスを指定していない場合は、次のように尋ねます:

「書き起こす音声ファイルのパスを指定してください。」

ファイルが存在することを確認してから先に進みます。

ステップ 2:確認
准备转录:

  文件:{filename}
  模型:{model}
  润色:{是 / 否}

继续?
ステップ 3:書き起こし

メタデータを取得するため、JSON 出力を指定して coli asr を実行します:

coli asr -j --model {model} "{file}"

初回の実行時に、coli は必要なモデルを自動的にダウンロードします。少し時間がかかることがあります。モデルがまだダウンロードされていない場合は、ユーザーに伝えてください。

JSON の結果を解析して、text、lang、emotion、event、duration を取り出します。

ステップ 4:文章を整える(有効な場合)

polish が true の場合、書き起こし結果の生の text を受け取り、句読点を修正し、フィラーを取り除き、読みやすく書き直します。元の意味と話者の意図は保持してください。要約や言い換えはしないでください。

ステップ 5:結果を提示

会話内に書き起こし結果を直接表示します:

转录完成

{transcript text}

─────────────────
语言:{lang} · 情绪:{emotion} · 时长:{duration}s

文章を整えた場合は、AI による調整済みであることを添えて、整えたバージョンを表示します。希望があれば元の書き起こしも表示できると伝えてください。

ステップ 6:Markdown としてエクスポート(任意)

結果を提示した後、次のように尋ねます:

Question: "保存为 Markdown 文件到当前目录?"
Options:
  - "是" — save to current directory
  - "否" — done

はいの場合、{audio-filename}-transcript.md を現在の作業ディレクトリ(ユーザーが Claude Code を実行している場所)に書き込みます。ファイルには書き起こしテキスト(磨き上げが有効な場合は整えたバージョン)を含め、次のフロントマターを付けます:

---
source: {original audio filename}
date: {YYYY-MM-DD}
model: {model used}
duration: {duration}s
lang: {detected language}
---

{transcript text}

組み合わせ

  • 呼び出し元:録音した音声の書き起こしが必要な今後のスキル
  • 呼び出すもの:なし

使用例

"このファイルを文字起こししてください meeting.m4a"

  1. 前提条件を確認します
  2. 設定を読み込みます
  3. 確認します:meeting.m4a、sensevoice、整文は有効
  4. coli asr -j --model sensevoice "meeting.m4a" を実行します
  5. 生のテキストを整文します
  6. インラインで表示します

"interview.wav を文字起こししてください。整文なし"

  1. 前提条件を確認します
  2. 設定を読み込みます
  3. このセッションでは整文を無効にします
  4. coli asr -j --model sensevoice "interview.wav" を実行します
  5. 整文前の文字起こしをインラインで表示します

コメント