mcpField
V
voice-ai-integration

voice-ai-integration

github.com/qodex-ai開発48209 回インストール43 週間前に更新
リポジトリ

voice-ai-integration について

Voice AI Integrationは、音声を処理して音声応答を生成するアプリケーション向けの開発スキルです。STT・TTSプロバイダー、音声アシスタントのパイプライン、リアルタイム音声処理の方法を扱います。

主な機能

  1. 01音声認識プロバイダーの例
  2. 02音声合成プロバイダーの例
  3. 03STT・NLP・TTSのアシスタントパイプライン
  4. 04会話履歴の管理
  5. 05音声活動検出を備えたストリーミング処理

活用シーン

  1. 01音声操作のスマートホームエージェント構築
  2. 02ストリーミング音声からの会議文字起こし
  3. 03AIアプリへの音声入力と出力の追加

インストール

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

$npx skills add https://github.com/qodex-ai/ai-agent-skills --skill voice-ai-integration

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

examples/
realtime_voice_processor.py
speech_recognition_providers.py
text_to_speech_providers.py
voice_assistant.py

詳細

音声 AI 統合

音声を理解し、音声で自然に応答する、インテリジェントな音声対応 AI アプリケーションを構築し、シームレスな音声ファーストのユーザー体験を実現します。

概要

音声 AI システムは、次の 3 つの主要な機能を組み合わせます。

  1. 音声認識 - 音声入力をテキストに変換します
  2. 自然言語処理 - 意図とコンテキストを理解します
  3. テキスト読み上げ - 自然な音声の応答を生成します

音声認識プロバイダー

実装例については、examples/speech_recognition_providers.py を参照してください。

  • Google Cloud Speech-to-Text:自動句読点付与に対応した高精度な音声認識
  • OpenAI Whisper:堅牢な多言語音声認識
  • Azure Speech Services:エンタープライズ向けの音声認識
  • AssemblyAI:高精度な非同期処理

テキスト読み上げプロバイダー

実装例については、examples/text_to_speech_providers.py を参照してください。

  • Google Cloud TTS:複数の言語に対応した自然な音声
  • OpenAI TTS:高品質な出力を実現するシンプルな統合
  • Azure Speech Services:ニューラル音声を備えたエンタープライズ向け TTS
  • Eleven Labs:感情を調整できるプレミアム音声

音声アシスタントのアーキテクチャ

VoiceAssistant の詳細については、examples/voice_assistant.py を参照してください。

  • 音声パイプライン全体:STT → NLP → TTS
  • 会話履歴の管理
  • 複数のプロバイダーに対応(OpenAI、Google、Azure など)
  • 応答性の高いやり取りを実現する非同期処理

リアルタイム音声処理

RealTimeVoiceProcessor の詳細については、examples/realtime_voice_processor.py を参照してください。

  • マイクから音声入力をストリーミング
  • スピーカーに音声出力をストリーミング
  • 音声アクティビティ検出(VAD)
  • サンプルレートとチャンクサイズを設定可能

音声エージェントアプリケーション

音声操作のスマートホーム
class SmartHomeVoiceAgent:
    def __init__(self):
        self.voice_assistant = VoiceAssistant()
        self.devices = {
            "lights": SmartLights(),
            "temperature": SmartThermostat(),
            "security": SecuritySystem()
        }

    async def handle_voice_command(self, audio_input):
        # Get text from voice
        command_text = await self.voice_assistant.process_voice_input(audio_input)

        # Parse intent
        intent = parse_smart_home_intent(command_text)

        # Execute command
        if intent.action == "turn_on_lights":
            self.devices["lights"].turn_on(intent.room)
        elif intent.action == "set_temperature":
            self.devices["temperature"].set(intent.value)

        # Confirm with voice
        response = f"I've {intent.action_description}"
        audio_output = await self.voice_assistant.synthesize_response(response)

        return audio_output
音声会議の文字起こし
class VoiceMeetingRecorder:
    def __init__(self):
        self.processor = RealTimeVoiceProcessor()
        self.transcripts = []

    async def record_and_transcribe_meeting(self, duration_seconds=3600):
        audio_stream = self.processor.stream_audio_input()

        buffer = []
        chunk_duration = 30  # Transcribe every 30 seconds

        for audio_chunk in audio_stream:
            buffer.append(audio_chunk)

            if sum(len(chunk) for chunk in buffer) >= chunk_duration * 16000:
                # Transcribe chunk
                transcript = transcribe_audio_whisper(buffer)
                self.transcripts.append({
                    "timestamp": datetime.now(),
                    "text": transcript
                })
                buffer = []

        return self.transcripts

ベストプラクティス

音声品質
  • ✓ 音声認識には 16kHz のサンプルレートを使用します
  • ✓ バックグラウンドノイズのフィルタリングに対応します
  • ✓ 音声アクティビティ検出(VAD)を実装します
  • ✓ 音声レベルを正規化します
  • ✓ 適切な音声形式を使用します(品質を重視する場合は WAV)
レイテンシの最適化
  • ✓ 低レイテンシの STT モデルを使用します
  • ✓ ストリーミング文字起こしを実装します
  • ✓ よく使う応答をキャッシュします
  • ✓ 非同期処理を使用します
  • ✓ ネットワークの往復回数を最小限に抑えます
エラー処理
  • ✓ ネットワーク障害に適切に対処します
  • ✓ フォールバック用の音声やプロバイダーを実装します
  • ✓ 音声処理の失敗をログに記録します
  • ✓ 処理前に音声品質を検証します
  • ✓ 再試行ロジックを実装します
プライバシーとセキュリティ
  • ✓ 転送中の音声を暗号化します
  • ✓ 処理後に音声を削除します
  • ✓ ユーザーの同意を得る仕組みを実装します
  • ✓ 音声データへのアクセスをログに記録します
  • ✓ データ規制(GDPR、CCPA)を遵守します

よくある課題と解決策

課題:アクセントと方言

解決策:

  • 多言語モデルを使用します
  • 地域のデータでファインチューニングします
  • 言語検出を実装します
  • ドメイン固有の語彙を使用します
課題:バックグラウンドノイズ

解決策:

  • ノイズフィルタリングを実装します
  • ビームフォーミング技術を使用します
  • ノイズ除去で音声を前処理します
  • マイクアレイを導入します
課題:長い音声ファイル

解決策:

  • チャンク単位の処理を実装します
  • ストリーミング API を使用します
  • 話者交代ごとに分割します
  • キャッシュを実装します

フレームワークとライブラリ

音声認識
  • OpenAI Whisper
  • Google Cloud Speech-to-Text
  • Azure Speech Services
  • AssemblyAI
  • DeepSpeech
テキスト読み上げ
  • Google Cloud Text-to-Speech
  • OpenAI TTS
  • Azure Text-to-Speech
  • Eleven Labs
  • Tacotron 2

はじめに

  1. STT と TTS のプロバイダーを選択します
  2. 認証を設定します
  3. 基本的な音声パイプラインを構築します
  4. 会話管理を追加します
  5. エラー処理を実装します
  6. 実際のユーザーでテストします
  7. レイテンシを監視して最適化します

コメント