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
+22
-6
@@ -1,6 +1,6 @@
|
||||
# Übergabe
|
||||
|
||||
Stand **2026-09-23**, letztes gebautes Paket 0.5.4. Wer hier weitermacht,
|
||||
Stand **2026-09-25**, letztes gebautes Paket 0.5.4. Wer hier weitermacht,
|
||||
liest zuerst diese Seite, dann [`07-mvp-plan.md`](07-mvp-plan.md). Für Abdu
|
||||
selbst gibt es das [Handbuch](handbuch/handbuch.pdf).
|
||||
|
||||
@@ -20,7 +20,7 @@ Auslöser bis zum fertigen Short steht im Code vollständig. Geprüft ist sie
|
||||
| S5 Onboarding + Sichtung | offen | |
|
||||
| S6 Erstchatter-Begrüßung | offen | |
|
||||
|
||||
280 Tests, alle grün. Was noch fehlt, steht vollständig in
|
||||
281 Tests, alle grün. Was noch fehlt, steht vollständig in
|
||||
[`offene-punkte.md`](offene-punkte.md).
|
||||
|
||||
## Neu: der Dienst läuft zentral
|
||||
@@ -120,15 +120,20 @@ prüft (`apps/hub/src/rewards.ts`), Piper spricht, `/tts` spielt ab.
|
||||
| Belohnung | „Nachricht vorlesen", 1000 Punkte, Texteingabe Pflicht |
|
||||
| Freigabe | keine, wird direkt vorgelesen |
|
||||
| Schutz | Wortfilter (29 Einträge), 200 Zeichen, 3 je Person und Stunde, „Sofort still" auf der Übersichtsseite |
|
||||
| Stimme | Piper, `de_DE-mls-medium`, Sprecher 0 |
|
||||
| Stimme | Piper, `de_DE-thorsten-medium` (mls klang verwaschen) |
|
||||
|
||||
**Die Stimme entsteht im Hub, nicht im Browser.** Zuerst lief es über
|
||||
`speechSynthesis` in der Browser-Quelle. Das hat in OBS gesprochen, aber
|
||||
amerikanisch: OBS' Browser sah keine deutsche Stimme und die Seite nahm die
|
||||
erste beliebige. Piper liegt unter `/opt/piper` im LXC (2 Kerne: 200 Zeichen
|
||||
in 0,7 s), das Stimmenmodell unter `models/piper/`. Beides überlebt jedes
|
||||
Ausrollen; eingerichtet mit `scripts/install-piper.sh`. Proben aller 236
|
||||
mls-Sprecher lassen sich mit `--speaker N` erzeugen.
|
||||
Ausrollen; eingerichtet mit `scripts/install-piper.sh`.
|
||||
|
||||
**Die erste Stimme war `de_DE-mls-medium`, Sprecher 0**, und klang im Stream
|
||||
„wie jemand mit Schlaganfall". Die Phoneme stimmten (`piper --debug`), es lag
|
||||
am Modell: Hörbuch-Aufnahmen von 236 Laien, Sprecher 0 ist ein beliebiger.
|
||||
Seit 2026-09-24 läuft `de_DE-thorsten-medium`, ein Sprecher, darum kein
|
||||
`sprecher` mehr in der Konfiguration. Das mls-Modell liegt noch daneben.
|
||||
|
||||
**Die Belohnung muss über die API angelegt sein** (`abdulive rewards:anlegen`).
|
||||
Nur die App, die eine Belohnung angelegt hat, darf deren Einlösungen
|
||||
@@ -142,6 +147,15 @@ zusammengezogenen Text gesucht, kürzere nur am Wortanfang, sonst stünde
|
||||
„nazi" in „kann azubi". Die Liste steht nur in der Hub-Konfiguration, nicht
|
||||
im Repo.
|
||||
|
||||
**Der Filter hat eine Stunde lang fast alles abgelehnt.** `www` in der Liste
|
||||
wurde zusammengezogen zu `w` und traf damit jedes Wort, das mit w anfängt
|
||||
(„wie", „weg"). Die Punkte gingen zurück, im Log stand nur `Wortfilter`.
|
||||
Behoben am 2026-09-24: was nach dem Zusammenziehen unter 3 Buchstaben hat,
|
||||
trifft nur noch als ganzes Wort. **Noch offen:** lange Einträge treffen über
|
||||
Wortgrenzen hinweg, „Spaß tut gut" fliegt wegen `spast` raus, „eine Gerade"
|
||||
wegen `neger`. Wer eine Ablehnung nachvollziehen will: der Text steht im
|
||||
Ereignis `points.redeemed` in der Datenbank.
|
||||
|
||||
**Der YAML-Leser konnte keine Listen aus Maps.** `- titel: X` zerfiel in
|
||||
Zeichenketten, jede Belohnung war ohne Meldung unwirksam - auch das Beispiel
|
||||
in `config.example.yaml`. Behoben und getestet; die bestehenden Dateien
|
||||
@@ -408,7 +422,9 @@ Wirkung.
|
||||
**`apps/recap` bauen.** Angefangen, aber nicht committet: `apps/recap/src/recap.ts`
|
||||
und Ergänzungen in `packages/db/src/repos.ts` liegen nur im Arbeitsstand
|
||||
(die Typprüfung meckert dort noch über `url: undefined`). Der Webhook liegt
|
||||
bereit, der Hub hat die Daten.
|
||||
bereit, der Hub hat die Daten. Achtung: `deploy-hub.sh` schiebt den ganzen
|
||||
Arbeitsstand, der halbe Recap liegt also schon im LXC. Er wird nur von nichts
|
||||
aufgerufen.
|
||||
|
||||
**Danach S5.** Nicht wegen des Codes, sondern weil das Werkzeug ohne
|
||||
Sichtungsseite für Abdu nicht bedienbar ist. Die Kette funktioniert, aber sie
|
||||
|
||||
Reference in new issue
Block a user