Название < /h2>
Повторяемые слова /фразы при вводе речевого текста (мобильный браузер, Flutter Web OK)-Функция Dedupe не работает в Flutter < /p>
Body < /h2>
Я строю личную информацию в Flutter с речевым током (с использованием refer_to_text < /code> и stext-steph Записано функция dedupemergedrepeat для очистки повторяющихся слов и объединенных фраз из ввода микрофона перед заполнением полей.
Он прекрасно работает на Flutter Web , но на мобильном браузере мобильный браузер (хром на Android и т. Д.) , поля все еще наполнены повторяемыми словами, но. /> Вот функция dedupe и соответствующий код: < /p>
/// Robust function to remove repeated words and merged repeated phrases.
String dedupeMergedRepeat(String input) {
// Remove numbers
String processed = input.replaceAll(RegExp(r'[0-9]'), '');
// Split into words using unicode support
List words = RegExp(r'(\p{L}+)', unicode: true)
.allMatches(processed)
.map((m) => m.group(0)!)
.toList();
if (words.isEmpty) return "";
// Remove consecutive duplicate words (case insensitive)
List noConsec = [];
for (var w in words) {
if (noConsec.isEmpty || noConsec.last.toLowerCase() != w.toLowerCase()) {
noConsec.add(w);
}
}
// Remove all duplicate words, keep first occurrence (case insensitive)
Set seen = {};
List noRepeat = [];
for (var w in noConsec) {
if (!seen.contains(w.toLowerCase())) {
seen.add(w.toLowerCase());
noRepeat.add(w);
}
}
String joined = noRepeat.join(' ');
// Remove repeated merged words: e.g. "DrDr" -> "Dr"
joined = joined.replaceAllMapped(
RegExp(r'\b(\p{L}+)\1\b', unicode: true, caseSensitive: false),
(m) => m.group(1)!);
// Remove repeated merged phrases. E.g. "Dr AmbedkarDr Ambedkar Road" -> "Dr Ambedkar Road"
// Try window sizes from half down to 1 word
List phraseWords = joined.split(' ');
for (int size = phraseWords.length ~/ 2; size >= 1; size--) {
for (int i = 0; i + 2 * size
Как я его использую: < /strong>
всякий раз, когда получается ввод микрофона, я называю эту функцию перед заполнением поле. Хотя эта логика присутствует.
В Fluther Web, она работает нормально, и Dedupes, как и ожидалось. /> Убедитесь, что я называю функцию, прежде чем установить значение TextEdingTitingController. Обновления? /> Примечание: < /strong> < /p>
Ошибка только на мобильных браузерах, а не при запуске в качестве нативного приложения Flutter или Fluther Web. ценится!
speech_to_text: ^7.1.0
Tested on: Chrome Android browser, Xiaomi Mi 10i Internet browser
Подробнее здесь: https://stackoverflow.com/questions/796 ... owser-when
Я получаю повторяющиеся слова и фразы в речи к тексту, когда в мобильном браузере, когда я говорю адрес, который я испол ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение