parole continue au texte en réaction

J'essaie de faire un discours au composant texte. ça marche mais quand j'arrête de parler ça s'arrête aussi, mais je veux une boucle jusqu'à ce que j'appuie sur le bouton d'arrêt.

const SpeechRecognition =
window.SpeechRecognition || window.webkitSpeechRecognition;
const recognition = new SpeechRecognition();

C'est le code que j'ai essayé - https://codesandbox.io/s/clever-clarke-4z7eqb?file=/src/App.js


Solution du problème

Je ne sais pas ce que vous voulez, mais voici comment lire le texte en continu.


import React, { useEffect } from "react";
function App() {
const [voice, setVoice] = React.useState(false);
const speek = () => {
const SpeechRecognition =
window.SpeechRecognition || window.webkitSpeechRecognition;
const recognition = new SpeechRecognition();
if (voice) recognition.start();
else recognition.stop();
recognition.onresult = (event) => {
const transcript = event.results[0][0].transcript;
console.log(transcript);
};
recognition.onspeechend = () => {
recognition.stop();
if (voice === true) speek(voice); // loop
};
recognition.onerror = (event) => {
console.log("error");
};
};
useEffect(() => {
speek(voice);
}, [voice]);
return (
<>
<button onClick={() => setVoice(!voice)}>
{voice? "stop": "start"}
</button>
</>
);
}
export default App;

Commentaires

Posts les plus consultés de ce blog

La fonction GCP Cloud pour écrire des données dans BigQuery s'exécute avec succès, mais les données n'apparaissent pas dans la table BigQuery

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Le shell POSIX (sh) redirige stderr vers stdout et capture stderr et stdout dans des variables