Added TTS Audio Playback Speed Config

This commit is contained in:
Vincent Castellano 2024-05-15 23:16:25 -07:00
parent 012f70336f
commit 1b23a62c13
1 changed files with 27 additions and 0 deletions

View File

@ -261,6 +261,7 @@ async function playAudioData(audioJob) {
audioElement.addEventListener('ended', completeCurrentAudioJob); audioElement.addEventListener('ended', completeCurrentAudioJob);
audioElement.addEventListener('canplay', () => { audioElement.addEventListener('canplay', () => {
console.debug('Starting TTS playback'); console.debug('Starting TTS playback');
audioElement.playbackRate = extension_settings.tts.playback_rate;
audioElement.play(); audioElement.play();
}); });
} }
@ -538,6 +539,7 @@ const defaultSettings = {
currentProvider: 'ElevenLabs', currentProvider: 'ElevenLabs',
auto_generation: true, auto_generation: true,
narrate_user: false, narrate_user: false,
playback_rate: 1
}; };
function setTtsStatus(status, success) { function setTtsStatus(status, success) {
@ -1022,6 +1024,20 @@ $(document).ready(function () {
<small>Pass Asterisks to TTS Engine</small> <small>Pass Asterisks to TTS Engine</small>
</label> </label>
</div> </div>
<div class="range-block">
<hr>
<div class="range-block-title justifyLeft" data-i18n="Audio Playback Speed">
Audio Playback Speed
</div>
<div class="range-block-range-and-counter">
<div class="range-block-range">
<input type="range" id="playback_rate" name="volume" min="0" max="3" step="0.05">
</div>
<div class="range-block-counter">
<input type="number" min="0" max="3" step="0.05" data-for="playback_rate" id="playback_rate_counter">
</div>
</div>
</div>
<div id="tts_voicemap_block"> <div id="tts_voicemap_block">
</div> </div>
<hr> <hr>
@ -1046,6 +1062,17 @@ $(document).ready(function () {
$('#tts_pass_asterisks').on('click', onPassAsterisksClick); $('#tts_pass_asterisks').on('click', onPassAsterisksClick);
$('#tts_auto_generation').on('click', onAutoGenerationClick); $('#tts_auto_generation').on('click', onAutoGenerationClick);
$('#tts_narrate_user').on('click', onNarrateUserClick); $('#tts_narrate_user').on('click', onNarrateUserClick);
$('#playback_rate').val(extension_settings.tts.playback_rate);
$('#playback_rate_counter').val(Number(extension_settings.tts.playback_rate).toFixed(2));
$('#playback_rate').on('input', function () {
const value = $(this).val();
const formattedValue = Number(value).toFixed(2);
extension_settings.tts.playback_rate = value;
$('#playback_rate_counter').val(formattedValue);
saveSettingsDebounced();
});
$('#tts_voices').on('click', onTtsVoicesClick); $('#tts_voices').on('click', onTtsVoicesClick);
for (const provider in ttsProviders) { for (const provider in ttsProviders) {
$('#tts_provider').append($('<option />').val(provider).text(provider)); $('#tts_provider').append($('<option />').val(provider).text(provider));