import { writeFile } from "node:fs/promises";
const API = "https://api.boson.ai/v1";
const headers = {
Authorization: `Bearer ${process.env.BOSON_API_KEY}`,
"Content-Type": "application/json",
};
// 1) Create a reusable voice from reference audio — returns a voice_id.
const created = await fetch(`${API}/audio/voices`, {
method: "POST",
headers,
body: JSON.stringify({
ref_audio: "https://docs.boson.ai/public/audio/sample.mp3",
ref_text:
"Same voice, same words, and uh, a completely different presence. I was built for chat native voice, real-time, expressive, and controllable.",
title: "My Voice",
}),
});
const { voice_id } = await created.json();
// 2) Reuse it on any request by passing the voice_id to "voice".
const res = await fetch(`${API}/audio/speech`, {
method: "POST",
headers,
body: JSON.stringify({
model: "higgs-tts-3",
input: "Using my saved voice.",
voice: voice_id,
}),
});
await writeFile("out.mp3", Buffer.from(await res.arrayBuffer()));