Vorlesen: Wortfilter trifft nicht mehr jedes w, Stimme Thorsten
"www" in der Blockliste wurde beim Zusammenziehen gezogener Buchstaben zu
"w" und traf als kurzer Eintrag jedes Wort, das mit w anfaengt. Im Stream
flog damit fast jede Nachricht raus ("wie", "weg"), die Punkte gingen
zurueck. Was nach dem Normalisieren unter 3 Buchstaben hat, trifft jetzt
nur noch als ganzes Wort.
de_DE-mls-medium, Sprecher 0, klang verwaschen. Die Phoneme stimmten, es
lag am Modell. Vorgabe ist jetzt de_DE-thorsten-medium; im Hub schon so
eingestellt.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
58e1d98351
commit
5622499877
6 files changed
+41
-13
No files matched your search
@@ -25,6 +25,15 @@ test('Wortfilter: kurze Eintraege nur am Wortanfang, sonst trifft es Harmloses',
|
||||
assert.equal(wortfilterTreffer('N4Z1', LISTE), 'nazi');
|
||||
});
|
||||
|
||||
test('Wortfilter: "www" wird zu "w" und darf nur als ganzes Wort treffen', () => {
|
||||
// So im Stream passiert: jede Nachricht mit "wie" oder "weg" flog raus.
|
||||
const liste = ['www', 'http'];
|
||||
assert.equal(wortfilterTreffer('wie kann es sein, dass ich nicht mod bin?!', liste), undefined);
|
||||
assert.equal(wortfilterTreffer('Ladiesman hat einen weg', liste), undefined);
|
||||
assert.equal(wortfilterTreffer('geh auf www.example.de', liste), 'www');
|
||||
assert.equal(wortfilterTreffer('https://example.de', liste), 'http');
|
||||
});
|
||||
|
||||
test('Wortfilter: normaler Text geht durch', () => {
|
||||
assert.equal(wortfilterTreffer('Grüße an Abdu, geiler Stream!', LISTE), undefined);
|
||||
});
|
||||
|
||||
@@ -148,6 +148,8 @@ export function fuerFilter(text: string, mitLuecken: boolean): string {
|
||||
* Lange Eintraege (ab 5 Buchstaben) werden im zusammengezogenen Text
|
||||
* gesucht, damit Punkte und Leerzeichen dazwischen nicht helfen. Kurze nur
|
||||
* am Wortanfang: zusammengezogen stuende "nazi" sonst auch in "kann azubi".
|
||||
* Was danach kuerzer als 3 Buchstaben ist, nur als ganzes Wort: aus "www"
|
||||
* wird "w", und das stuende am Anfang von "wie" und "weg".
|
||||
*/
|
||||
export function wortfilterTreffer(text: string, blockliste: string[]): string | undefined {
|
||||
const dicht = fuerFilter(text, false);
|
||||
@@ -155,6 +157,7 @@ export function wortfilterTreffer(text: string, blockliste: string[]): string |
|
||||
return blockliste.find((eintrag) => {
|
||||
const e = fuerFilter(eintrag, false);
|
||||
if (!e) return false;
|
||||
if (e.length < 3) return woerter.includes(e);
|
||||
return e.length >= 5 ? dicht.includes(e) : woerter.some((w) => w.startsWith(e));
|
||||
});
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user