Vereinfachung der Zahlenausgabe

Ich würde gerne die Texte von meiner Frau sprechen lassen, dann kann sie sich im Tonuino meiner Enkel verewigen. Das Einsprechen von 255 Zahlen ist jetzt aber nicht die Lösung, Ich möchte die Zahlen aus Teilen zusammenbauen, dann sind nur knappe 30 Wörter einzusprechen. Das Zusammensetzen ist im Prinzip einfach, jedoch habe ich es noch nicht hinbekommen, mehrere MP3-Dateien hintereinander ohne Lücken bzw. Verkürzungen abzuspielen. Die Funktion isPlaying funktioniert bei mir nicht und der 16er Busy-Pin auf dem MP3-Player habe ich nicht abgefragt bekommen. Ich habe eine Menge probiert, aber nichts hat zuverlässig funktioniert. Hat hier jemand eine Idee? Meine Internetbefragungen waren bisher nicht erfolgreich. Wahrscheinlich falsche Keywords.

am besten baust du die Dateien mit einem Tool wie Audacity zusammen.

das ist aber leider mehr Arbeit, als diese softwaretechnisch zusammenzusetzen.

Als Tipp, wenn du zwei mp3 direkt hintereinander abspielen willst musst du etwas tricksen. Wenn das Playback startet kannst du NICHT direkt auf busy prüfen. Es dauert etwas bis der DFPlayer Mini den busy pin richtig setzt. Es hilft ca. 400-500ms zu warten und dann in 10ms Schritten bis busy wieder vorbei ist. Folgendes funktioniert bei mir gut:

void waitPlaybackToFinish() {
  delay(500);
  do {
    delay(10);
  } while (!digitalRead(mp3BusyPin));
}

mp3.playMp3FolderTrack(xxx);
waitPlaybackToFinish();
mp3.playMp3FolderTrack(xxx);

Allerdings blockiert so ein warten natürlich den Nano… also man kann dann nicht mehr Buttons bedienen etc. Also eher für kurze Ansagen zu gebrauchen…

1 „Gefällt mir“

der BusyPin klappt doch bei ihm nicht

wobei ich mich frage warum - du hast ja die Platine… eigentlich ist ja damit eine falsche Verkabelung ausgeschlossen.

Wenn man direkt nach Playback Start auf Busy prüft und es eben nicht funktioniert (weil man zu schnell fragt) kann man das ja mit “geht generell nicht” verwechseln. Wenn Busy generell nicht funktioniert, ginge ja auch play/pause nicht richtig usw.

Hmmm… da ist was dran.

Wobei ich noch nie Probleme hatte ohne das delay(500) - kannst du das bitte mal probieren @Rainer

Das werde ich ausprobieren. Vielen Dank. Ich gebe dann wieder Bescheid, wie es funktioniert. Mit der Schleife hatte ich schon getestet, aber eben ohne den vorherigen Delay.

Mit dem Delay funktioniert es. Herzlichen Dank. Dann werde ich den Code für das Zusammensetzen der Zahlen erstellen. Wenn es dann immer noch funktioniert, stelle ich den Code hier wieder zur Verfügung.

Man kann übrigens auch MP3DC zum Zusammenfügen von MP3-Stücken nehmen. Ist zwar ein wenig gewöhnungsbedürftig und nur für Windows verfügbar, funzt aber wunderbar. Man spart sich das Decodieren und Recodieren, weil die MP3 direkt verarbeitet werden:
MP3DC

Hier sammeln sich schon so einige Tools dafür. Vielleicht schreibst du deins noch dazu.

Danke für den Hinweis. Erledigt.

Der Code ist fertig.
Hier die Beschreibung und Code-Teil:
https://pastebin.com/z9PQicPq
Falls jemand damit experimentieren möchte.

1 „Gefällt mir“

Hallo Rainer,
ich komme nicht ganz mit. Wie meinst Du das mit den 30 Wörtern? Hab da auch jemanden im Auge, der mir was einsprechen könnte… Danke!

Hi,
in meinem Link oben (ein Beitrag zuvor) ist eine Liste der 23 Wörter für die mögliche Ausgabe der Zahlen von 0 bis 999999. Entscheidend ist dabei, die Wörter ohne bzw. mit geringen Pausen einzusprechen. Dort ist auch der Code dafür, um diese auszugeben. Man muss dann die Befehle mp3.playMp3FolderTrack bzw. mp3.playAdvertisement austauschen durch playNumber tauschen und Zahlen >= 300 ohne Übersetzung auszugeben. Ich habe es erst mal nur als Testfunktion gemacht, um zu prüfen, dass es funktioniert und wie es klingt. Ich habe leider bisher meine Frau noch nicht dazu bewegen können, mir die Wörter und die Texte einzusprechen. Im wesentlichen ging es um die Personalisierung des Tonuino, so dass die Oma die Texte ansagt. (Omatonuino)
Ehrlicherweise muss ich sagen, dass Frau Google TTS gar nicht so übel spricht. Johannes hat die Texte und Zahlen neu eingestellt. Die sind viel besser als die ursprünglichen Textbaussteine. Thorsten hat dies auch im Github aktualisiert.
Man kann auch die Textbausteine aus verschieden Fragmenten zusammensetzen, z.B. “Bestätige bitte mit der Pausetaste” oder “Zum Abbrechen bitte eine der Lautstärketasten drücken” kann man an mehrfach hinten anhängen. Ist natürlich eine Spielerei, aber es hat auch was.
Wenn Du noch Fragen hast, schreibe mir einfach.

Aaaah, man sollte auch die Links anklicken. Jetzt wird es klar, Danke!