make_bot_speak
Generate speech for meeting bots using text-to-speech technology to vocalize text during video calls with customizable voice options.
Instructions
Make a bot speak text during a meeting using text-to-speech
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bot_id | Yes | ID of the bot that should speak | |
| text | Yes | Text for the bot to speak | |
| voice_language_code | No | Voice language code (optional, defaults to 'en-US') | en-US |
| voice_name | No | Voice name (optional, defaults to 'en-US-Casual-K') | en-US-Casual-K |
Implementation Reference
- src/index.ts:527-561 (handler)The main handler function that validates inputs, constructs the speech data, makes the API POST request to /api/v1/bots/{bot_id}/speech, and returns a success message.private async makeBotSpeak(args: Record<string, unknown>) { const bot_id = args.bot_id as string; const text = args.text as string; const voice_language_code = (args.voice_language_code as string) || "en-US"; const voice_name = (args.voice_name as string) || "en-US-Casual-K"; if (!bot_id || typeof bot_id !== 'string') { throw new Error("Missing or invalid required parameter: bot_id"); } if (!text || typeof text !== 'string') { throw new Error("Missing or invalid required parameter: text"); } const speechData = { text, text_to_speech_settings: { google: { voice_language_code, voice_name } } }; await this.makeApiRequest(`/api/v1/bots/${bot_id}/speech`, "POST", speechData); return { content: [ { type: "text", text: `ā Bot ${bot_id} will speak: "${text}"\n\nš Voice: ${voice_name} (${voice_language_code})\nš” The bot should now be speaking in the meeting!`, }, ], }; }
- src/index.ts:269-292 (schema)The input schema defining parameters for the make_bot_speak tool, including required bot_id and text, and optional voice settings.inputSchema: { type: "object", properties: { bot_id: { type: "string", description: "ID of the bot that should speak", }, text: { type: "string", description: "Text for the bot to speak", }, voice_language_code: { type: "string", description: "Voice language code (optional, defaults to 'en-US')", default: "en-US", }, voice_name: { type: "string", description: "Voice name (optional, defaults to 'en-US-Casual-K')", default: "en-US-Casual-K", }, }, required: ["bot_id", "text"], },
- src/index.ts:266-293 (registration)The tool registration entry in the ListTools response, specifying name, description, and input schema.{ name: "make_bot_speak", description: "Make a bot speak text during a meeting using text-to-speech", inputSchema: { type: "object", properties: { bot_id: { type: "string", description: "ID of the bot that should speak", }, text: { type: "string", description: "Text for the bot to speak", }, voice_language_code: { type: "string", description: "Voice language code (optional, defaults to 'en-US')", default: "en-US", }, voice_name: { type: "string", description: "Voice name (optional, defaults to 'en-US-Casual-K')", default: "en-US-Casual-K", }, }, required: ["bot_id", "text"], }, },
- src/index.ts:410-411 (registration)The switch case in the CallToolRequest handler that dispatches calls to the makeBotSpeak handler.case "make_bot_speak": return await this.makeBotSpeak(args);