mirror of
				https://github.com/SillyTavern/SillyTavern.git
				synced 2025-06-05 21:59:27 +02:00 
			
		
		
		
	Autoformat
This commit is contained in:
		@@ -11,13 +11,13 @@ let audioControl
 | 
			
		||||
 | 
			
		||||
let lastCharacterId = null;
 | 
			
		||||
let lastGroupId = null;
 | 
			
		||||
let lastChatId = null; 
 | 
			
		||||
let lastChatId = null;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async function moduleWorker() {
 | 
			
		||||
    // Primarily determinign when to add new chat to the TTS queue
 | 
			
		||||
    const enabled = $("#elevenlabs_enabled").is(':checked');
 | 
			
		||||
    if (!enabled){
 | 
			
		||||
    if (!enabled) {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -34,7 +34,7 @@ async function moduleWorker() {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Chat/character/group changed
 | 
			
		||||
    if ((context.groupId && lastGroupId !== context.groupId) || (context.characterId !== lastCharacterId) || (context.chatId !== lastChatId)) { 
 | 
			
		||||
    if ((context.groupId && lastGroupId !== context.groupId) || (context.characterId !== lastCharacterId) || (context.chatId !== lastChatId)) {
 | 
			
		||||
        currentMessageNumber = context.chat.length ? context.chat.length : 0
 | 
			
		||||
        saveLastValues();
 | 
			
		||||
        return;
 | 
			
		||||
@@ -135,7 +135,7 @@ async function fetchTtsHistory() {
 | 
			
		||||
 | 
			
		||||
async function findTtsGenerationInHistory(message, voiceId) {
 | 
			
		||||
    const ttsHistory = await fetchTtsHistory();
 | 
			
		||||
    for (const history of ttsHistory) { 
 | 
			
		||||
    for (const history of ttsHistory) {
 | 
			
		||||
        const text = history.text;
 | 
			
		||||
        const itemId = history.history_item_id;
 | 
			
		||||
        if (message === text && history.voice_id == voiceId) {
 | 
			
		||||
@@ -160,9 +160,9 @@ let queueProcessorReady = true
 | 
			
		||||
let lastAudioPosition = 0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
async function playAudioData(audioBlob){
 | 
			
		||||
async function playAudioData(audioBlob) {
 | 
			
		||||
    const reader = new FileReader();
 | 
			
		||||
    reader.onload = function(e) {
 | 
			
		||||
    reader.onload = function (e) {
 | 
			
		||||
        const srcUrl = e.target.result;
 | 
			
		||||
        audioElement.src = srcUrl;
 | 
			
		||||
    };
 | 
			
		||||
@@ -186,14 +186,14 @@ function completeCurrentAudioJob() {
 | 
			
		||||
 */
 | 
			
		||||
async function addAudioJob(response) {
 | 
			
		||||
    const audioData = await response.blob()
 | 
			
		||||
    if (audioData.type != "audio/mpeg"){
 | 
			
		||||
    if (audioData.type != "audio/mpeg") {
 | 
			
		||||
        throw `TTS received HTTP response with invalid data format. Expecting audio/mpeg, got ${audioData.type}`
 | 
			
		||||
    }
 | 
			
		||||
    audioJobQueue.push(audioData)
 | 
			
		||||
    console.debug("Pushed audio job to queue.")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function processAudioJobQueue(){
 | 
			
		||||
async function processAudioJobQueue() {
 | 
			
		||||
    // Nothing to do, audio not completed, or audio paused - stop processing.
 | 
			
		||||
    if (audioJobQueue.length == 0 || !queueProcessorReady || audioPaused) {
 | 
			
		||||
        return;
 | 
			
		||||
@@ -202,7 +202,7 @@ async function processAudioJobQueue(){
 | 
			
		||||
        queueProcessorReady = false
 | 
			
		||||
        currentAudioJob = audioJobQueue.pop()
 | 
			
		||||
        playAudioData(currentAudioJob)
 | 
			
		||||
    } catch(error) {
 | 
			
		||||
    } catch (error) {
 | 
			
		||||
        console.error(error)
 | 
			
		||||
        queueProcessorReady = true
 | 
			
		||||
    }
 | 
			
		||||
@@ -217,12 +217,12 @@ let ttsJobQueue = []
 | 
			
		||||
let currentTtsJob
 | 
			
		||||
let currentMessageNumber = 0
 | 
			
		||||
 | 
			
		||||
function completeTtsJob(){
 | 
			
		||||
function completeTtsJob() {
 | 
			
		||||
    console.info(`Current TTS job for ${currentTtsJob.name} completed.`)
 | 
			
		||||
    currentTtsJob = null
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function saveLastValues(){
 | 
			
		||||
function saveLastValues() {
 | 
			
		||||
    const context = getContext()
 | 
			
		||||
    lastGroupId = context.groupId;
 | 
			
		||||
    lastCharacterId = context.characterId;
 | 
			
		||||
@@ -252,7 +252,7 @@ async function processTtsQueue() {
 | 
			
		||||
 | 
			
		||||
    console.debug("New message found, running TTS")
 | 
			
		||||
    currentTtsJob = ttsJobQueue.shift()
 | 
			
		||||
    const text = currentTtsJob.mes.replaceAll('*','...'); 
 | 
			
		||||
    const text = currentTtsJob.mes.replaceAll('*', '...');
 | 
			
		||||
    const char = currentTtsJob.name
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
@@ -261,7 +261,7 @@ async function processTtsQueue() {
 | 
			
		||||
        }
 | 
			
		||||
        const voice = await getTtsVoice(voiceMap[char])
 | 
			
		||||
        const voiceId = voice.voice_id
 | 
			
		||||
        if (voiceId == null){
 | 
			
		||||
        if (voiceId == null) {
 | 
			
		||||
            throw (`Unable to attain voiceId for ${char}`)
 | 
			
		||||
        }
 | 
			
		||||
        tts(text, voiceId)
 | 
			
		||||
@@ -318,7 +318,7 @@ async function updateApiKey() {
 | 
			
		||||
 | 
			
		||||
    // Using this call to validate API key
 | 
			
		||||
    API_KEY = String(value)
 | 
			
		||||
    await fetchTtsVoiceIds().catch((error => {  
 | 
			
		||||
    await fetchTtsVoiceIds().catch((error => {
 | 
			
		||||
        API_KEY = null
 | 
			
		||||
        throw `ElevenLabs TTS API key invalid`
 | 
			
		||||
    }))
 | 
			
		||||
@@ -338,12 +338,12 @@ function parseVoiceMap(voiceMapString) {
 | 
			
		||||
    return parsedVoiceMap
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function getTtsVoice(name){
 | 
			
		||||
async function getTtsVoice(name) {
 | 
			
		||||
    // We're caching the list of voice_ids. This might cause trouble if the user creates a new voice without restarting
 | 
			
		||||
    if (elevenlabsTtsVoices.length == 0) {
 | 
			
		||||
        elevenlabsTtsVoices = await fetchTtsVoiceIds();
 | 
			
		||||
    }
 | 
			
		||||
    const match = elevenlabsTtsVoices.filter((elevenVoice) => elevenVoice.name == name)[0] ;
 | 
			
		||||
    const match = elevenlabsTtsVoices.filter((elevenVoice) => elevenVoice.name == name)[0];
 | 
			
		||||
    if (!match) {
 | 
			
		||||
        throw `TTS Voice name ${name} not found in ElevenLabs account`;
 | 
			
		||||
    }
 | 
			
		||||
@@ -354,9 +354,9 @@ async function voicemapIsValid(parsedVoiceMap) {
 | 
			
		||||
    let valid = true
 | 
			
		||||
    for (const characterName in parsedVoiceMap) {
 | 
			
		||||
        const parsedVoiceName = parsedVoiceMap[characterName];
 | 
			
		||||
        try{
 | 
			
		||||
        try {
 | 
			
		||||
            await getTtsVoice(parsedVoiceName);
 | 
			
		||||
        } catch(error) {
 | 
			
		||||
        } catch (error) {
 | 
			
		||||
            console.error(error)
 | 
			
		||||
            valid = false;
 | 
			
		||||
        }
 | 
			
		||||
@@ -400,23 +400,23 @@ function onElevenlabsEnableClick() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function updateUiAudioPlayState() {
 | 
			
		||||
    if (extension_settings.elevenlabstts.enabled == true){
 | 
			
		||||
    if (extension_settings.elevenlabstts.enabled == true) {
 | 
			
		||||
        audioControl.style.display = 'flex'
 | 
			
		||||
        const img = !audioElement.paused? "fa-solid fa-circle-pause": "fa-solid fa-circle-play"
 | 
			
		||||
        const img = !audioElement.paused ? "fa-solid fa-circle-pause" : "fa-solid fa-circle-play"
 | 
			
		||||
        audioControl.className = img
 | 
			
		||||
    } else {
 | 
			
		||||
        audioControl.style.display = 'none'
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function onAudioControlClicked(){
 | 
			
		||||
    audioElement.paused? audioElement.play(): audioElement.pause()
 | 
			
		||||
function onAudioControlClicked() {
 | 
			
		||||
    audioElement.paused ? audioElement.play() : audioElement.pause()
 | 
			
		||||
    updateUiAudioPlayState()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function addAudioControl() {
 | 
			
		||||
    $('#send_but_sheld').prepend('<div id="tts_media_control"/>')
 | 
			
		||||
    $('#send_but_sheld').on('click',onAudioControlClicked)
 | 
			
		||||
    $('#send_but_sheld').on('click', onAudioControlClicked)
 | 
			
		||||
    audioControl = document.getElementById('tts_media_control');
 | 
			
		||||
    updateUiAudioPlayState();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user