Skip to Content

PlayAI

The PlayAI voice implementation in Mastra provides text-to-speech capabilities using PlayAI’s API.

Usage Example

import { PlayAIVoice } from "@mastra/voice-playai"; // Initialize with default configuration (uses PLAYAI_API_KEY environment variable and PLAYAI_USER_ID environment variable) const voice = new PlayAIVoice(); // Initialize with default configuration const voice = new PlayAIVoice({ speechModel: { name: 'PlayDialog', apiKey: process.env.PLAYAI_API_KEY, userId: process.env.PLAYAI_USER_ID }, speaker: 'Angelo' // Default voice }); // Convert text to speech with a specific voice const audioStream = await voice.speak("Hello, world!", { speaker: 's3://voice-cloning-zero-shot/b27bc13e-996f-4841-b584-4d35801aea98/original/manifest.json' // Dexter voice });

Constructor Parameters

speechModel?:

PlayAIConfig
= { name: 'PlayDialog' }
Configuration for text-to-speech functionality

speaker?:

string
= First available voice ID
Default voice ID to use for speech synthesis

PlayAIConfig

name?:

'PlayDialog' | 'Play3.0-mini'
= 'PlayDialog'
The PlayAI model to use

apiKey?:

string
PlayAI API key. Falls back to PLAYAI_API_KEY environment variable

userId?:

string
PlayAI user ID. Falls back to PLAYAI_USER_ID environment variable

Methods

speak()

Converts text to speech using the configured speech model and voice.

input:

string | NodeJS.ReadableStream
Text to convert to speech. If a stream is provided, it will be converted to text first.

options.speaker?:

string
= Constructor's speaker value
Override the default speaker for this request

Returns: Promise<NodeJS.ReadableStream>.

getSpeakers()

Returns an array of available voice options, where each node contains:

name:

string
Name of the voice

accent:

string
Accent of the voice (e.g., 'US', 'British', 'Australian')

gender:

'M' | 'F'
Gender of the voice

age:

'Young' | 'Middle' | 'Old'
Age category of the voice

style:

'Conversational' | 'Narrative'
Speaking style of the voice

voiceId:

string
Unique identifier for the voice

listen()

This method is not supported by PlayAI and will throw an error. PlayAI does not provide speech-to-text functionality.

Notes

  • PlayAI requires both an API key and a user ID for authentication
  • The service offers two models: ‘PlayDialog’ and ‘Play3.0-mini’
  • Each voice has a unique S3 manifest ID that must be used when making API calls