javascript - 使用 expo-speech 跟踪口语文本
问题描述
我已经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 && 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
andpitch
来计算语音的速度,然后能够知道语音现在正在说哪些单词。
但是我的数学真的很差,我不知道这样做是否可以接受。
在这里我做了一个小零食,但它并没有像我想要的那样真正起作用 https://snack.expo.dev/@alentoma/text-to-speech-converter
解决方案
推荐阅读
- php - Laravel Horizon - 工作模型中的设置,如“retryAfter”、“tries”或“timeout”不起作用
- git - 从一个分支到另一个分支的 PR 仍然显示已在先前 PR 中合并的提交
- angular - Angular 7 - 一个具有多个下拉菜单的功能
- python - 重复图表
- oop - 如何在不破坏数据封装的情况下访问父类属性?
- jakarta-ee - TomEE:配置 AMQP JCA 资源适配器
- php - MYSQL CREATE EVENT 与 laravel DB::statement
- java - 如果 avro 模式与数据一起存储,为什么 java avro api 需要我提供模式文件?
- php - jQuery在数据和编辑事件中传递多个值
- javascript - 如何处理 ThrustJS 中的循环引用?