Отслеживание произносимого текста с помощью expo-speech

#javascript #react-native #expo #react-native-android

Вопрос:

Я реализовал expo-speech свое приложение, и оно работает нормально. Теперь я хотел бы иметь возможность отслеживать или отмечать произносимое слово. Возможно ли это? Могу ли я это сделать?

Это мой текущий код для говорения

   const speak = (text: string, onDone: () => void) => {
    var translatorLanguage = !novelReaderSettings.translatorLanguage || novelReaderSettings.translatorLanguage == "auto" ? "en" : novelReaderSettings.translatorLanguage;
    var lng = textVoices.find(x => x.language.split("-")[0] == translatorLanguage)?.language ?? "en-US";
    var voice = novelReaderSettings.voice amp;amp; novelReaderSettings.voice != "" ? novelReaderSettings.voice : textVoices.find(x => x.language == lng)?.identifier
    Speech.speak(text, {
      voice: voice,
      language: lng,
      rate: novelReaderSettings.rate ?? 1.0,
      pitch: novelReaderSettings.pitch ?? 1.0,
      onDone: onDone,
    });
  }
 

Вот пример, показывающий, как я его использую

 var text =["Hi how are you?", "fine thank you.", "How are you?"];

var index =-1;
const play =()=>{
  var current = text[  index]
  speak(current, play);
}
 

Я подумываю об использовании rate и pitch для расчета скорости голоса, а затем смогу узнать, какие слова произносит голос прямо сейчас.

Но я действительно плохо разбираюсь в математике и не знаю, можно ли это сделать.

Здесь я сделал небольшую закуску, но на самом деле она работает не так, как я хочу https://snack.expo.dev/@alentoma/text-to-speech-converter