2010-02-26 14 views
9

Kann mir jemand in die richtige Richtung zeigen, wie ich Umgebungsgeräusche minimieren würde, während ich jemanden aufnehmen würde, der mit dem iPhone SDK Core Audio spricht? Ich denke, ein Bandpassfilter, der alle Frequenzen über und unter dem menschlichen Stimmumfang eliminiert, könnte funktionieren. Ich habe keine Ahnung, wie ich Bandfilter für Audio im SDK implementieren würde. Die optimale Lösung wäre eine, die das Rauschen aus dem Datenstrom eliminiert, bevor es in den Speicher/Datenträger geschrieben wird.iPhone SDK: Wie zeichnet man Stimmen mit Umgebungsgeräuschunterdrückung auf?

Einige Beispielcode würde geschätzt werden.

+1

Rauschen ist aufgrund seiner zufälligen Natur von Natur aus schwierig zu entfernen. Während Sie das scheinbare Rauschen in einer Aufnahme entfernen können, wird es das Signal in unvorhersehbarer Weise beeinflussen. Betrachten Sie alle Archivare und Toningenieure und ihren ständigen Kampf mit dem Lärm. – lucius

+0

Konnten Sie Hintergrundgeräusche während der Aufnahme reduzieren, geben Sie bitte einige Ideen an. – Warrior

Antwort

8

Sie müssten eine adaptive filter und eine voice activity detector implementieren. In Perioden, in denen keine Sprache vorhanden ist, sammeln Sie Umgebungsgeräusche und verwenden diese, um den adaptiven Filter zu steuern.

+1

Interessante Idee. Vielen Dank. – memmons

+1

R -> Können Sie mir Codes für die Implementierung des adaptiven Filteralgorithmus zur Verfügung stellen? – Warrior

+1

@Warrior: adaptive Filter sind nicht trivial zu implementieren - ich schlage vor, Sie lesen ein gutes Buch über das Thema, z. http://www.amazon.com/Adaptive-Filter-Theory-Simon-Haykin/dp/0130901261 ​​oder versagt, dass zumindest Google für LMS usw. und lernen Sie etwas von der Theorie, bevor Sie eine Implementierung versuchen –

2

Suchen Sie nach "spektrale Subtraktion", einer Technik zur Analyse einer Stichprobe dessen, was Sie Hintergrundgeräusche nennen, und dann subtrahieren Sie sie vom regulären Signal. Ja, Sie werden immer einige Artefakte bekommen. Es ist ein Kompromiss.