Merge pull request #349 from ouoertheo/ouoertheo/tts-elevenlabs-multilingual

add elevenlabs multilingual. add tts debug method
This commit is contained in:
Cohee
2023-05-20 18:23:30 +03:00
committed by GitHub
2 changed files with 29 additions and 0 deletions

View File

@ -17,6 +17,7 @@ class ElevenLabsTtsProvider {
stability: 0.75, stability: 0.75,
similarity_boost: 0.75, similarity_boost: 0.75,
apiKey: "", apiKey: "",
multilingual: false,
voiceMap: {} voiceMap: {}
} }
@ -28,6 +29,10 @@ class ElevenLabsTtsProvider {
<input id="elevenlabs_tts_stability" type="range" value="${this.defaultSettings.stability}" min="0" max="1" step="0.05" /> <input id="elevenlabs_tts_stability" type="range" value="${this.defaultSettings.stability}" min="0" max="1" step="0.05" />
<label for="elevenlabs_tts_similarity_boost">Similarity Boost: <span id="elevenlabs_tts_similarity_boost_output"></span></label> <label for="elevenlabs_tts_similarity_boost">Similarity Boost: <span id="elevenlabs_tts_similarity_boost_output"></span></label>
<input id="elevenlabs_tts_similarity_boost" type="range" value="${this.defaultSettings.similarity_boost}" min="0" max="1" step="0.05" /> <input id="elevenlabs_tts_similarity_boost" type="range" value="${this.defaultSettings.similarity_boost}" min="0" max="1" step="0.05" />
<label class="checkbox_label" for="elevenlabs_tts_multilingual">
<input id="elevenlabs_tts_multilingual" type="checkbox" value="${this.defaultSettings.multilingual}" />
Enable Multilingual
</label>
` `
return html return html
} }
@ -36,6 +41,7 @@ class ElevenLabsTtsProvider {
// Update dynamically // Update dynamically
this.settings.stability = $('#elevenlabs_tts_stability').val() this.settings.stability = $('#elevenlabs_tts_stability').val()
this.settings.similarity_boost = $('#elevenlabs_tts_similarity_boost').val() this.settings.similarity_boost = $('#elevenlabs_tts_similarity_boost').val()
this.settings.multilingual = $('#elevenlabs_tts_multilingual').prop('checked')
} }
@ -59,6 +65,7 @@ class ElevenLabsTtsProvider {
$('#elevenlabs_tts_stability').val(this.settings.stability) $('#elevenlabs_tts_stability').val(this.settings.stability)
$('#elevenlabs_tts_similarity_boost').val(this.settings.similarity_boost) $('#elevenlabs_tts_similarity_boost').val(this.settings.similarity_boost)
$('#elevenlabs_tts_api_key').val(this.settings.apiKey) $('#elevenlabs_tts_api_key').val(this.settings.apiKey)
$('#tts_auto_generation').prop('checked', this.settings.multilingual)
console.info("Settings loaded") console.info("Settings loaded")
} }
@ -165,6 +172,10 @@ class ElevenLabsTtsProvider {
} }
async fetchTtsGeneration(text, voiceId) { async fetchTtsGeneration(text, voiceId) {
let model = "eleven_monolingual_v1"
if (this.settings.multilingual == true) {
model = "eleven_multilingual_v1"
}
console.info(`Generating new TTS for voice_id ${voiceId}`) console.info(`Generating new TTS for voice_id ${voiceId}`)
const response = await fetch( const response = await fetch(
`https://api.elevenlabs.io/v1/text-to-speech/${voiceId}`, `https://api.elevenlabs.io/v1/text-to-speech/${voiceId}`,
@ -175,6 +186,7 @@ class ElevenLabsTtsProvider {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
}, },
body: JSON.stringify({ body: JSON.stringify({
model: model,
text: text, text: text,
voice_settings: this.settings voice_settings: this.settings
}) })

View File

@ -162,6 +162,23 @@ function isTtsProcessing() {
return processing return processing
} }
function debugTtsPlayback() {
console.log(JSON.stringify(
{
"ttsProviderName": ttsProviderName,
"currentMessageNumber": currentMessageNumber,
"isWorkerBusy":isWorkerBusy,
"audioPaused": audioPaused,
"audioJobQueue": audioJobQueue,
"currentAudioJob": currentAudioJob,
"audioQueueProcessorReady": audioQueueProcessorReady,
"ttsJobQueue": ttsJobQueue,
"currentTtsJob": currentTtsJob,
}
))
}
window.debugTtsPlayback = debugTtsPlayback
//##################// //##################//
// Audio Control // // Audio Control //
//##################// //##################//