Ich habe gerade erfahren, dass die menschliche Stimme keine einzelne Sinuswelle ist, sondern eine Reihe unbegrenzter Sinuswellen mit jeweils unterschiedlichen Frequenzen.
Laut Wikipedia
Die Stimme besteht aus Geräuschen, die von einem Menschen erzeugt werden, der die Stimmlippen zum Sprechen, Singen, Lachen, Weinen, Schreien usw. verwendet. Ihre Frequenz reicht von etwa 60 bis 7000 Hz.
Wenn es sich bei der menschlichen Stimme also um ein zusammengesetztes Signal handelt, enthält sie verschiedene Frequenzbereiche zwischen 60 Hz und 7 kHz.
Angenommen, es gibt eine Gruppe von Personen, die alle zusammen dasselbe Lied singen. Jede Person hat ihre eigenen Sprachfrequenzbereiche.
Zum Beispiel,
Wenn eine Person A die folgenden Frequenzen hat: 100 Hz, 250 Hz, 6 kHz, 10 Hz, 87 Hz, 52 Hz, 2 kHz .......
und eine Person B hat die folgenden, 217Hz1, 11Hz, 12Hz, 2323Hz, 839Hz, 4KHz, 100Hz, 10Hz .....
Es muss so viele Frequenzen geben, die sowohl in der Person A als auch in der Person A ähnlich sind, wie im obigen Beispiel, dass die Frequenzen 100 Hz und 10 Hz zwischen zwei Personen gemeinsam sind.
Ich habe mir eine TV-Show mit dem Namen "Fringe" angesehen, in der die Stimme des jeweiligen Mannes aus einer Audiodatei herausgefiltert wurde, während dort auch andere Personen anwesend waren.
Wie filtern sie also genau die Stimme einer Person aus der Stimme von Hunderten von Menschen heraus, wenn es so viele Frequenzen gibt, die allen gemeinsam sind? Hat dies etwas mit den Amplituden der Frequenzen einer Person zu tun?
Antworten:
Wenn das Signal mit nur einem Mikrofon aufgezeichnet wird, können Sie Methoden wie die spektrale Subtraktion verwenden. Diese Methode eignet sich besser für "konstante" Geräusche wie die Geräusche eines Lüfters oder eines Leerlaufmotors. Andere Methoden beruhen auf Statistiken und Wahrnehmungsmodellen der Sprache. Wenn das Signal mit mehreren Mikrofonen aufgezeichnet wird, können Sie die Blindquellentrennung zum Trennen der (Sprach-) Signale verwenden. Nach dem heutigen Stand werden Sie keine perfekten Ergebnisse erzielen. Das typische Endergebnis ist immer ein Kompromiss zwischen "Rauschen" und Klarheit des interessierenden Sprachsignals. Mehr "Rauschunterdrückung" -> mehr Verschlechterung des interessierenden Signals.
quelle
Okay, nehmen wir an, wir haben eine Audiodatei von zwei Personen, die miteinander sprechen. Wenn sie nicht gleichzeitig sprechen würden, wäre es möglich, das tonale Element ihrer Rede zu trennen. Es mag schwieriger sein, die Geräuschelemente ihrer Sprache (ssss oder fffff-Töne) zu trennen, aber wenn sie nicht gleichzeitig sprechen, ist dies möglicherweise möglich. Dies wäre viel einfacher, wenn wir eine Spektralanalyse des Schalls durchführen könnten, ohne die Phaseninformationen zu verlieren.
Grundsätzlich nimmt die Spektralanalyse eine Wellenform (Klang als einzelne Welle oder Linie) und trennt alle einzelnen Töne, sodass Sie sie rechtzeitig von niedrig nach hoch und von links nach rechts sehen können. Dabei gehen die meisten Informationen, die den Anstieg und Abfall der einzelnen Wellenform anzeigen, verloren. Wenn wir die Phaseninformationen beibehalten könnten, wäre dies viel einfacher, da alle einzelnen Komponentenfrequenzen einer Stimme harmonisch miteinander in Beziehung stehen würden und somit ihre Phase ausgerichtet wäre.
Derzeit kenne ich keinen Algorithmus, der dies erreicht, aber ich glaube, dass dies theoretisch möglich ist. Ich erinnere mich, dass ich einen Artikel über Melodynes Creater Peter Neubäcker gelesen habe, der daran arbeitet, dies zu tun, damit zwei zusammen singende Sänger getrennt werden können, aber ich weiß nicht, wie ich diesen Artikel wiederfinden würde
quelle