| import axios from "axios"; |
| import fs from "fs"; |
| import "dotenv/config"; |
|
|
| async function textToSpeech(voiceId: string, text: string) { |
| try { |
| console.log("Début de la conversion texte vers voix..."); |
|
|
| const url = `https://api.elevenlabs.io/v1/text-to-speech/${voiceId}`; |
| const response = await axios.post( |
| url, |
| { |
| text: text, |
| model_id: "eleven_multilingual_v2", |
| voice_settings: { |
| stability: 0.3, |
| similarity_boost: 0.85, |
| }, |
| }, |
| { |
| headers: { |
| Accept: "audio/mpeg", |
| "xi-api-key": process.env.ELEVENLABS_API_KEY, |
| "Content-Type": "application/json", |
| }, |
| responseType: "arraybuffer", |
| } |
| ); |
|
|
| console.log("Audio généré avec succès"); |
|
|
| |
| fs.writeFileSync("output.mp3", response.data); |
| console.log("Audio sauvegardé dans output.mp3"); |
| } catch (error) { |
| console.error("Erreur:", error.response?.data || error); |
| } |
| } |
|
|
| |
| const voiceId = "nGfHJWtJzDfxi8048hg3"; |
| const textToConvert = ` |
| <speak> |
| <prosody rate="90%">Salut, je parle un peu plus lentement...</prosody> |
| <prosody rate="110%">Et là je parle un peu plus vite!</prosody> |
| <prosody rate="95%">Et maintenant je reviens à une vitesse presque normale.</prosody> |
| </speak>`; |
|
|
| textToSpeech(voiceId, textToConvert); |
|
|