Servus,
ich versuche eine Sprachsynthese zu programmieren (mit dem PC). Ich habe sog. Samples (Tonfetzen) von meiner Stimme, die ich im Abstand von 2048 Bytes (bei 44100 Hz Sampling-Rate) verkette, um die fertige Sprache zu bekommen.
SAMPLE+SAMPLE+SAMPLE+SAMPLE+…=Fertiges Sprachaufnahme, die an die Soundkarte geschickt wird.
Leider klingt die Stimme in der Ausgabe VERZERRT und kratzig
(obwohl ich schon die ersten und letzten 512 Bytes vermische:
so aehnlich:
Output[OutputWritePos ++] =
(1-WritePos/SampleLength)*OldSample[1536 + WritePos] + (WritePos/SampleLength)*NextSample[WritePos]
)
Ich habe auf http://de.wikipedia.org/wiki/Sprachsynthese im Abschnitt „Overlap Add“ gelesen, dass man „die Phasenlage der Harmonischen normalisieren“ sollte.
FRAGE: wie normalisiere ich die Phasenlage der Harmonischen, wenn ich eine Datenbank von 2048 Bytes-Samples habe und diese verketten will?
BITTE bitte, KEINE mathematischen Formeln! Ich brauche eine Schritt-fuer-Schritt Anleitung fuer Praktiker. Mit FFT und IFFT bin ich gut vertraut, falls man das braucht.
Vielen Dank im Voraus!
Rainer