#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