mcpField
O
omnivoice

omnivoice

github.com/debpalashクリエイティブ・メディア92.9k158 回インストール今日更新
リポジトリ

omnivoice について

omnivoiceは、VoiceStudioのローカルなOpenAI互換APIで音声生成や文字起こしを行うスキルです。クローン音声プロファイルの利用方法を案内し、音声をローカルで処理します。

主な機能

  1. 01ローカル音声合成
  2. 02音声の文字起こしと字幕出力
  3. 03音声プロファイルの検索
  4. 04OpenAI SDKとHTTPの使用例

活用シーン

  1. 01選んだ音声でテキストを読み上げる
  2. 02音声をテキストや字幕に書き起こす

インストール

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

$npx skills add https://github.com/debpalash/voicestudio --skill omnivoice

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

詳細

VoiceStudio — ローカル TTS と STT

ユーザーは VoiceStudio を実行しています。これは http://localhost:3900/v1 で OpenAI 互換の音声 API を公開する、完全ローカル動作の音声アプリです。ユーザーが音声の生成、テキストのナレーション、声のクローン作成、音声の文字起こしを依頼したときは、これを使用してください。無料でオフライン動作し、音声が端末の外に出ることもありません。

最初の呼び出しの前に

バックエンドが起動していることを確認します。

curl -sf http://localhost:3900/health

失敗した場合は、VoiceStudio を起動するようユーザーに伝えてください(ソースコードをチェックアウトしている場合は bun run desktop-prod を実行します)。ユーザーに確認せず、クラウド API に切り替えないでください。ローカル優先であることが、ユーザーがこのアプリをインストールした理由です。

テキストから音声への変換

curl -s http://localhost:3900/v1/audio/speech \
  -H "Content-Type: application/json" \
  -d '{"model": "tts-1", "voice": "alloy", "input": "TEXT HERE", "response_format": "wav"}' \
  --output speech.wav
  • model:tts-1 または tts-1-hd。どちらもユーザーが現在使用している TTS エンジンに割り当てられます。
  • voice:OpenAI の音声名(alloy、echo、nova など)が使えますが、真価を発揮するのは、ユーザー自身がクローンした音声プロフィール ID です。まずプロフィールを確認し(下記参照)、ユーザーが「自分の声」「ナレーターの声」、または名前でプロフィールを指定した場合は、名前付きのクローンを優先してください。
  • response_format:wav、mp3、flac、opus、pcm のいずれかです。
  • 長いテキストも問題ありません。エンジンが内部で文の区切りに沿って分割します。

ユーザーの音声を確認する

curl -s http://localhost:3900/v1/audio/voices

クローンまたはデザイン済みの音声プロフィール(ID と名前)と、インストール済みのエンジンをすべて一覧表示します。/speech の voice 値には、プロフィールの ID を使います。

音声からテキストへの変換

curl -s http://localhost:3900/v1/audio/transcriptions \
  -F [email protected] -F model=whisper-1 -F response_format=json
  • model:whisper-1 は、現在使用している ASR エンジンに割り当てられます(デフォルトは WhisperX。ユーザーは「Model Catalogue → Engines」で選択します)。
  • response_format:json、text、verbose_json(セグメントごとのタイムスタンプ)、srt、vtt のいずれかです。ユーザーが字幕を希望する場合は、srt または vtt をそのまま使用してください。

Python(openai SDK)

from openai import OpenAI
client = OpenAI(base_url="http://localhost:3900/v1", api_key="none")  # any string; nothing checks it

audio = client.audio.speech.create(model="tts-1", voice="alloy", input="Hello!", response_format="wav")
text = client.audio.transcriptions.create(model="whisper-1", file=open("clip.wav", "rb")).text

注意事項

  • API キーも、レート制限も、料金もありません。ユーザー自身のハードウェアを使用します。コールドスタート後の最初の合成は、モデルの読み込みに時間がかかる場合があります。以降の呼び出しは高速です。
  • 音声生成や文字起こし以外の機能(動画の吹き替え、バッチ処理、音声のデザイン、オーディオブック)は、完全版の REST API で利用できます。インタラクティブなリファレンスはアプリ内の Settings → OpenAPI Reference に埋め込まれています。ユーザーに開くよう依頼することもできます。
  • エンジンやモデルに関するメッセージとともに呼び出しがエラーになった場合、対処に役立つ詳細情報は通常レスポンス本文にあります。その内容をユーザーにそのまま伝えてください。VoiceStudio のエラーメッセージは、ユーザー自身で解決できるように記述されています(例:切り替える必要がある Settings のトグル)。

コメント