Wie verhindern Sie wiederholte Wörter und Phrasen in der Sprache zum Text der Adresse im mobilen Browser in Flattern?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Wie verhindern Sie wiederholte Wörter und Phrasen in der Sprache zum Text der Adresse im mobilen Browser in Flattern?

by Anonymous » 13 Jul 2025, 00:00

Wiederholte Wörter/Phrasen in der Sprach-Text-Eingabe (Mobile Browser, Flutter Web OK)-Dedupe-Funktion funktioniert nicht in Flattern
Ich erstelle kein persönliches Infotoformular in Flatter mit Sprache-zu-Text (mit Sprach-up-up-up-up-up-up-up-wörern. Phrasen aus dem Mikrofoneingang, bevor Felder ausgefüllt werden. />

Code: Select all

/// 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 
[b] Wie ich es verwende: < /strong>

Wenn der Mikrofoneingang empfangen wird, nenne ich diese Funktion, bevor ich das Feld fülle. Wörter/Phrasen, obwohl diese Logik vorhanden ist. logs. TexteditingController-Updates? />   HINWEIS: < /strong> < /p>

 Der Fehler ist nur auf mobilen Browsern, nicht beim Laufen als native Flutter -App oder Flattern -Web. geschätzt! [/b]
speech_to_text: ^7.1.0
Tested on: Chrome Android browser, Xiaomi Mi 10i Internet browser

Top