Wave (PCM) beschleunigen ohne Frequenzänderung?

Hallo Community!
Mich würde interessieren ob jemand Erfahrung mit dem Beschleunigen von Audiodaten (z.B. als WAV/PCM) hat, ohne dass die Frequenz ebenfalls hochgeht?
Wenn ich also einen Satz Audiodaten habe, die mit 11025Hz gesampled wurden und diese dann mit 22050Hz abspiele, dann dauert das Ganze halb so lange, aber ich bekomme auch eine entsprechende Mickey-Maus-Stimme, die bei dieser Beschleunigung schon fast nicht mehr zu verstehen ist.

Was könnte man denn machen, um diesem Effekt entgegenzuwirken? Am besten noch in Echtzeit, d.h. während die Soundpuffer für die Ausgabe bereitgestellt werden?

Time-Stretching und Pitch-Shiftig
… heißen diese beiden Effekte. Bei Sprache ist es jedoch sehr schwer mehr als 10 % Änderung zu machen, ohne dass es hörbar wird.

In manchen Profi-Produkten (http://steinberg.de, http://emagic.de) gibt es neuere Algorithmen speziell für Gesang und Sprache, die versuchen diese Effekte zu minimieren.

Algorithmen zum selbstprogrammieren sind dort jedoch Firmengeheimnis. Aber wenn es lohnt, kann ja evtl. eine Library gekauft werden.

Gruß

Stefan

… heißen diese beiden Effekte. Bei Sprache ist es jedoch
sehr schwer mehr als 10 % Änderung zu machen, ohne dass es
hörbar wird.

Hm. Ich habe mir soetwas wirklich noch nie herumgespielt. Bei Sprache stelle ich mir das in der Tat echt schwer vor. (-> Formanten)

In manchen Profi-Produkten (http://steinberg.de,
http://emagic.de) gibt es neuere Algorithmen speziell für
Gesang und Sprache, die versuchen diese Effekte zu minimieren.

Für andere Anforderungen sollte es „sox“ tun. Zugegeben, ich habe sowas mit sox nie gemacht, aber es geht. Wobei ich über das Resultat keine Aussagen machan kann.

_[...]_
 pitch shift [width interpole fade]
 Change the pitch of file without affecting its
 duration by cross-fading shifted samples. shift
 is given in cents. Use a positive value to shift
 to treble, negative value to shift to bass.
 Default shift is 0. width of window is in ms.
 Default width is 20ms. Try 30ms to lower pitch,
 and 10ms to raise pitch. interpole option, can
 be "cubic" or "linear". Default is "cubic". The
 fade option, can be "cos", "hamming", "linear"
 or "trapezoid". Default is "cos".
_[...]_

 stretch factor [window fade shift fading]
 Time stretch file by a given factor. Change
 duration without affecting the pitch. factor of
 stretching: \>1.0 lengthen, [...]

Das sind einige Optionen des meiner Meinung genialen Sound-Manipulationstools „sox“. Es lohnt sich definitiv, nachzulesen, was das Programm so alles kann. Sox ist übrigens Open Source und frei verfügbar.

Gruß,

Sebastian

Hi!

Bei Sprache stelle ich mir das in der Tat echt schwer vor.
(-> Formanten)

Die Formanten sind bei Gesang oder Instrumenten viel stärker ausgeprägt! Die Formanten sind eingentlich kein Problem beim Timrstretchen, und beim Pitchshiften schon länger nicht mehr (die richtige Software vorausgesetzt)

Grüßle
Florian

Hallo,

Bei Sprache stelle ich mir das in der Tat echt schwer vor.
(-> Formanten)

Die Formanten sind bei Gesang oder Instrumenten viel stärker
ausgeprägt!

… was auch immer „stärker ausgeprägt“ heißt.

Die Formanten sind eingentlich kein Problem beim
Timrstretchen, und beim Pitchshiften schon länger nicht mehr
(die richtige Software vorausgesetzt)

Wie macht die Software das beim Pitch-Shiften? Filtert sie per Equalizer „einfach“ so, daß die Hüllkurve des Power-Spektrums beim Eingangs- und Ausgangssignal gleich ist?

Gruß,

Sebastian

Moin!

… was auch immer „stärker ausgeprägt“ heißt.

Oioi, jetzt nagelt er mich fest :wink: Mit ausgeprägt meine ich:

1.) mehre Formanten

2.) Pegelmäßig stärker betont

Wie macht die Software das beim Pitch-Shiften? Filtert sie per
Equalizer „einfach“ so, daß die Hüllkurve des Power-Spektrums
beim Eingangs- und Ausgangssignal gleich ist?

Genau: Die Software analysiert, welche Obertöne in welchem Bereich stark ausgeprägt sind. Wenn ich jetzt Pitchshifte (tolles neues „deutsches“ Wort *ggg*), und die Formanten um zB eine Terz verschoben sind, „verschiebt“ der Pitschifter die Frequenzbhänige „Hüllkurve“. Konkret:
VOR Ps

63Hz -10dB
80Hz -3dB
100Hz -10dB

Nach Ps:

63Hz -10dB
80Hz -10dB
100Hz -3dB

NACH Korrektur:
63Hz -10dB
80Hz -3dB
100Hz -10dB

Der Pitschifter regelt bei 80Hz hoch und bei 100 Herz wieder runter (usw)

grüßle

Florian

Hoppala!

Eigentlich hatte ich nicht damit gerechnet, für die Realisierung einer solchen Funktion erst Harmonielehre studieren zu müssen :wink:
Der Tip mit SOX ist aber schon mal ein guter Anfang, vielleicht kann ich mir ja einen Reim auf die Sourcen machen…

Danke,

Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Uups
HI

Hoppala!

Eigentlich hatte ich nicht damit gerechnet, für die
Realisierung einer solchen Funktion erst Harmonielehre
studieren zu müssen :wink:

Äh so war nicht geplant :wink:

Der Tip mit SOX ist aber schon mal ein guter Anfang,
vielleicht kann ich mir ja einen Reim auf die Sourcen
machen…

Wunderbar!!!

LG

Florian