Skip to Content
ドキュメント音声Mastra における音声認識(STT) | Mastra ドキュメント

音声認識(STT)

Mastraの音声認識(STT)は、複数のサービスプロバイダー間で音声入力をテキストに変換するための標準化されたインターフェースを提供します。 STTは、人間の音声に応答できる音声対応アプリケーションの作成を支援し、ハンズフリーでの操作、障害を持つユーザーのためのアクセシビリティ、そしてより自然な人間とコンピューターのインターフェースを可能にします。

設定

MastraでSTTを使用するには、ボイスプロバイダーを初期化する際にlisteningModelを指定する必要があります。これには以下のようなパラメータが含まれます:

  • name: 使用する特定のSTTモデル。
  • apiKey: 認証用のAPIキー。
  • プロバイダー固有のオプション: 特定のボイスプロバイダーで必要またはサポートされている追加オプション。

注意: これらのパラメータはすべて省略可能です。使用しているボイスプロバイダーによって異なりますが、プロバイダーが提供するデフォルト設定を利用することもできます。

const voice = new OpenAIVoice({ listeningModel: { name: "whisper-1", apiKey: process.env.OPENAI_API_KEY, }, }); // If using default settings the configuration can be simplified to: const voice = new OpenAIVoice();

利用可能なプロバイダー

Mastra は複数の Speech-to-Text プロバイダーをサポートしており、それぞれ独自の機能と強みがあります。

  • OpenAI - Whisper モデルによる高精度な文字起こし
  • Azure - Microsoft のエンタープライズレベルの信頼性を持つ音声認識
  • ElevenLabs - 複数言語対応の高度な音声認識
  • Google - 幅広い言語サポートを持つ Google の音声認識
  • Cloudflare - 低遅延アプリケーション向けのエッジ最適化音声認識
  • Deepgram - 様々なアクセントに対応した高精度の AI 音声認識
  • Sarvam - インド系言語とアクセントに特化

各プロバイダーは、必要に応じてインストールできる個別のパッケージとして実装されています。

pnpm add @mastra/voice-openai # Example for OpenAI

Listen メソッドの使用方法

STT の主なメソッドは listen() メソッドであり、話された音声をテキストに変換します。使い方は以下の通りです。

import { Agent } from "@mastra/core/agent"; import { openai } from "@ai-sdk/openai"; import { OpenAIVoice } from "@mastra/voice-openai"; import { getMicrophoneStream } from "@mastra/node-audio"; const voice = new OpenAIVoice(); const agent = new Agent({ name: "Voice Agent", instructions: "You are a voice assistant that provides recommendations based on user input.", model: openai("gpt-4o"), voice, }); const audioStream = getMicrophoneStream(); // Assume this function gets audio input const transcript = await agent.voice.listen(audioStream, { filetype: "m4a", // Optional: specify the audio file type }); console.log(`User said: ${transcript}`); const { text } = await agent.generate( `Based on what the user said, provide them a recommendation: ${transcript}`, ); console.log(`Recommendation: ${text}`);

STT をエージェントで使用する方法については、エージェントに音声を追加する ドキュメントもご覧ください。