diff --git a/lib/tasks/tts-task.js b/lib/tasks/tts-task.js index b1d90f1f..6c9a58c8 100644 --- a/lib/tasks/tts-task.js +++ b/lib/tasks/tts-task.js @@ -94,6 +94,23 @@ class TtsTask extends Task { ...(style && {ELEVENLABS_TTS_STREAMING_VOICE_SETTINGS_STYLE: style}) }; break; + case 'rimelabs': + const { + pauseBetweenBrackets, phonemizeBetweenBrackets, inlineSpeedAlpha, speedAlpha, reduceLatency + } = this.options; + obj = { + RIMELABS_API_KEY: api_key, + RIMELABS_TTS_STREAMING_MODEL_ID: model_id, + RIMELABS_TTS_STREAMING_VOICE_ID: voice, + RIMELABS_TTS_STREAMING_LANGUAGE: language || 'en', + ...(pauseBetweenBrackets && {RIMELABS_TTS_STREAMING_PAUSE_BETWEEN_BRACKETS: pauseBetweenBrackets}), + ...(phonemizeBetweenBrackets && + {RIMELABS_TTS_STREAMING_PHONEMIZE_BETWEEN_BRACKETS: phonemizeBetweenBrackets}), + ...(inlineSpeedAlpha && {RIMELABS_TTS_STREAMING_INLINE_SPEED_ALPHA: inlineSpeedAlpha}), + ...(speedAlpha && {RIMELABS_TTS_STREAMING_SPEED_ALPHA: speedAlpha}), + ...(reduceLatency && {RIMELABS_TTS_STREAMING_REDUCE_LATENCY: reduceLatency}) + }; + break; default: if (vendor.startsWith('custom:')) { const use_tls = custom_tts_streaming_url.startsWith('wss://'); diff --git a/lib/utils/constants.json b/lib/utils/constants.json index a2cdfdc7..c49f88f2 100644 --- a/lib/utils/constants.json +++ b/lib/utils/constants.json @@ -259,6 +259,11 @@ "ConnectFailure": "elevenlabs_tts_streaming::connect_failed", "Connect": "elevenlabs_tts_streaming::connect" }, + "RimelabsTtsStreamingEvents": { + "Empty": "rimelabs_tts_streaming::empty", + "ConnectFailure": "rimelabs_tts_streaming::connect_failed", + "Connect": "rimelabs_tts_streaming::connect" + }, "CustomTtsStreamingEvents": { "Empty": "custom_tts_streaming::empty", "ConnectFailure": "custom_tts_streaming::connect_failed", diff --git a/lib/utils/tts-streaming-buffer.js b/lib/utils/tts-streaming-buffer.js index 0038d3e1..573886b3 100644 --- a/lib/utils/tts-streaming-buffer.js +++ b/lib/utils/tts-streaming-buffer.js @@ -278,6 +278,7 @@ class TtsStreamingBuffer extends Emitter { 'deepgram', 'cartesia', 'elevenlabs', + 'rimelabs', 'custom' ].forEach((vendor) => { const eventClassName = `${vendor.charAt(0).toUpperCase() + vendor.slice(1)}TtsStreamingEvents`;