Frage

Ich habe ein Programm, die PCM-Daten von einem Web-Server herunterlädt, die sie später verwendet durch einen Standard-PCM-Spieler. Ich möchte in der Lage sein, damit die Benutzer die Tonhöhe der PCM-Daten zu ändern, während sein gespielt wird.

Wer weiß, wie dies zu tun?

War es hilfreich?

Lösung

Ich weiß nicht, jede digitale Signalverarbeitungs-Bibliothek für C #, aber dies scheint eine vollständige Quelle Probe für Tonhöhe zu verlagern in .net .:
http://sites.google.com/site/mikescoderama/pitch-shifting

Andere Tipps

Die einfachste Lösung ist der Ton bei einer höheren Abtastrate wiedergeben als es aufgenommen wurde - eine 22-kHz-Datei mit 44 kHz spielt die Tonhöhe verdoppeln. Sie können das gleiche erreichen, indem nur einige Beispiele aus dem Klang (schlechte Qualität) Wegwerfen oder Resampling den Ton (gute Qualität, wenn ein guter Algorithmus wie sinc-Interpolation verwendet wird).

Aber es gibt eine Abhängigkeit - die Tonhöhe zu verändern, indem er mit unterschiedlichen Abtastraten zurück wird nicht nur die Tonhöhe ändern, aber die Länge des Tons auch. Es ist möglich, die Dauer zu verändern und Tonhöhe unabhängig, aber das ist nicht so einfach und erfordert eine angemessene Menge an singnal Verarbeitung gute Qualität zu erreichen. Es wird in der Regel in der Frequenzdomäne unter Verwendung von Fast-Fourier-Transformationen durchgeführt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top