Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

138
Visualizações
Texto a voz sigue repitiéndose - JavaScript

el problema Tengo una implementación de JavaScript de texto a voz (usando la biblioteca SpeechSynthesisUtterance) que funciona en ese texto que se habla.

El principal problema es que cuando se llama a la función de hablar después de que se cumple una condición inicial (la condición es que el usuario levante los brazos en una transmisión de cámara en vivo), el TTS repite la variable de voz demasiadas veces, independientemente del valor de "retraso". nos alimentamos.

La función de 'hablar' que se llama cada vez que se utiliza TTS se muestra a continuación. La función de condición llama a hablar correctamente siempre que sea Verdadero.

He probado casi todos los métodos con respecto a establecer un contexto para que no se repita cuando la condición se cumple una vez dentro de una ventana de diez segundos. Llamar a tts.cancel() tampoco parece tener efecto.

Tengo el presentimiento de que debido a que la función de procesamiento de la cámara se llama con tantos fotogramas por segundo, la cola de declaraciones se llena de muchas solicitudes. Al mismo tiempo, quiero que TTS se active solo una vez cuando la condición llama a hablar por primera vez.

Cualquier ayuda es muy apreciada y se puede proporcionar una aclaración. Cualquier referencia a funciones o conceptos útiles también sería genial. ¡Disculpas por el código de principiante!

 var voice= window.speechSynthesis; var tts = new SpeechSynthesisUtterance(); function speaking(speech, delayer) { let sleep = (ms) => { return new Promise((resolve) => setTimeout(resolve, ms)); }; console.log("Speaking"); if (!voice.speaking) { tts.text = speech; voice.speak(tts); sleep(delayer); clearTimeout(timerOut); return; if (voice.speaking) { voice.cancel(); return; } } return; }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

aquí hay una versión más simple

 function speaking(speech, delayer) { if (delayer === void 0) { delayer = 0; } if (speech.length > 0) { setTimeout(function () { var utterThis = new SpeechSynthesisUtterance(speech); utterThis.rate = 1; utterThis.pitch = 1; window.speechSynthesis.speak(utterThis); }, delayer); } }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda