| class OpenAiTTS { |
| constructor() { |
| if (!process.env.TTS_OPEN_AI_KEY) |
| throw new Error("No OpenAI API key was set."); |
| const { OpenAI: OpenAIApi } = require("openai"); |
| this.openai = new OpenAIApi({ |
| apiKey: process.env.TTS_OPEN_AI_KEY, |
| }); |
| this.voice = process.env.TTS_OPEN_AI_VOICE_MODEL ?? "alloy"; |
| } |
|
|
| async ttsBuffer(textInput) { |
| try { |
| const result = await this.openai.audio.speech.create({ |
| model: "tts-1", |
| voice: this.voice, |
| input: textInput, |
| }); |
| return Buffer.from(await result.arrayBuffer()); |
| } catch (e) { |
| console.error(e); |
| } |
| return null; |
| } |
| } |
|
|
| module.exports = { |
| OpenAiTTS, |
| }; |
|
|