anything-llm/server/utils/TextToSpeech/openAi/index.js

30 lines
685 B
JavaScript
Raw Normal View History

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,
};