audioport について
audioportは、ローカル音声ファイルを扱うCLIおよびMCPサーバーです。ffmpegとffprobeを使い、文字起こしは別途設定したローカルコマンドに委ねます。
主な機能
- 01音声メタデータの取得
- 02一般的な音声形式の変換
- 03音声区間の切り出し
- 04ffmpegによるラウドネス正規化
- 05設定したコマンドでの文字起こし
活用シーン
- 01ファイル形式と長さの確認
- 02WAV、FLAC、MP3ファイルの変換
- 03開始時刻を指定した区間の抽出
- 04設定済みのローカルエンジンでの文字起こし
MCP 対応
stdio MCPサーバーは、音声メタデータの取得、変換、切り出し、正規化、文字起こしのツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| input | string | はい | メタデータを読み取る入力音声ファイルのパス。 |
詳細
audioport
audioport は、ローカルファイルを使った日常的な音声処理を行います。ファイルについて ffprobe が報告する情報(形式、再生時間、ビットレート、サンプルレート、チャンネル数)を読み取り、一般的な音声形式間で変換し、指定した秒数から始まる区間をファイルから切り出し、ffmpeg の loudnorm フィルターでラウドネスを正規化します。5 つ目のツールは文字起こしを行いますが、利用者自身が設定した文字起こしエンジンを通じてのみ実行されます。audioport にエンジンは同梱されておらず、文字起こし結果を捏造することもありません。
すべての処理は、マシン上の ffmpeg および ffprobe バイナリを引数配列(シェルは使用しません)で呼び出して実行するため、処理ツールを使うにはこれらのバイナリをインストールする必要があります。バイナリが見つからない場合、作り上げた結果ではなく、バイナリ自体のエラーが返されます。
文字起こし
文字起こしは、AUDIOPORT_TRANSCRIBER_COMMAND 環境変数で指定されたローカルコマンドに委任されます。音声ファイルのパスを最後の引数としてコマンドを実行し、その標準出力を文字起こし結果として使用します。例:
export AUDIOPORT_TRANSCRIBER_COMMAND="whisper-cli --model base"
この変数が設定されていない場合、transcribe と transcribe_audio ツールは、AUDIOPORT_TRANSCRIBER_COMMAND を示すエラーで失敗します。API キーもホスト型サービスもなく、言葉を推測するフォールバックもありません。
インストール
npx @reneturcios/audioport metadata song.mp3
または、コンテナーイメージを実行します。
docker run -i ghcr.io/cloudcorprecords/audioport
コンテナーはデフォルトで MCP サーバー(下記参照)を起動し、ffmpeg/ffprobe は同梱していません。処理ツールを使うには、ホストにインストールするか、ffmpeg をインストールした派生イメージを使用してください。CLI として使うには、CLI 引数を渡してください。
CLI
audioport metadata song.mp3
audioport convert song.wav song-out.mp3 mp3 --bitrate 192k
audioport trim song.mp3 clip.mp3 5 --duration 10
audioport normalize song.wav song-normalized.wav
audioport transcribe song.mp3 --language en
audioport --version
convert コマンドは、出力パスの拡張子が変換先の形式と異なる場合、拡張子を変換先の形式に置き換えて書き込みます(song-out.ogg を mp3 に変換すると、song-out.mp3 に書き込みます)。対応形式:mp3、wav、ogg、flac、aac、m4a。
各コマンドは結果を JSON として出力します。終了コード:成功時は 0、処理に失敗した場合(文字起こしエンジンが見つからない場合を含む)は 1、使用方法に誤りがある場合は 2 です。
MCP サーバー
1 つのバイナリでどちらの用途にも対応します。mcp サブコマンドで stdio MCP サーバーを起動します。
npx -y @reneturcios/audioport mcp
MCP クライアントの設定:
{
"mcpServers": {
"audioport": {
"command": "npx",
"args": ["-y", "@reneturcios/audioport", "mcp"],
"env": { "AUDIOPORT_TRANSCRIBER_COMMAND": "whisper-cli --model base" }
}
}
}
ツール
| ツール | 入力 | 返される内容 |
|---|---|---|
get_audio_metadata | input(必須) | 形式、秒単位の再生時間、ビットレート、サンプルレート、チャンネル数です。ffprobe が提供しなかったフィールドは null になります。 |
convert_audio | input、output、format(必須)、bitrate(任意) | 実際の出力パス(拡張子は形式に従います)、形式、ビットレートです。 |
trim_audio | input、output、start(必須)、duration(任意) | 出力パス、開始秒数、再生時間です。 |
normalize_audio | input、output(必須) | loudnorm 処理後の入力パスと出力パスです。 |
transcribe_audio | input(必須)、language(任意) | 設定されたエンジンによる文字起こし結果です。エンジンが設定されていない場合は、AUDIOPORT_TRANSCRIBER_COMMAND を示すエラーが返されます。 |
開発
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, fake executors only
npm run dev # run the CLI from source via tsx
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。