Die Antwort lautet "vielleicht". 1000 unhörbare Flüstern können immer noch unhörbar sein; Die Frage, die Sie wahrscheinlich stellen wollten, lautet: "Wäre das Geräusch von 1000 Personen, die gleichzeitig flüstern, lauter als das Geräusch von 1 Person, die flüstert?"
Die Antwort auf diese Frage ist ein klares "Ja". Wie viel lauter werden sie sein - und wird dies zu einer hörbaren / verständlichen Nachricht führen?
Dazu müssen Sie das Konzept von Interferenz und Kohärenz verstehen. Zwei Schallquellen sind kohärent , wenn sie dieselbe Wellenform erzeugen. In der realen Welt ist die Kohärenz normalerweise zeitlich begrenzt: Wenn ich zwei Stimmgabeln habe, die nominelle 440 Hz erzeugen, könnte eine von ihnen eine Frequenz von 440,1 Hz erzeugen, und nach 5 Sekunden wären die beiden Wellenformen nicht mehr schrittweise 180 Grad (dies ist die Ursache für "Beats"). Jeder Ton, den Sie machen, besteht aus vielen Frequenzen - siehe zum Beispiel diese Frage und den zugehörigen Antworten -, die zusammen ein erkennbares Phonem bilden (Ton, den ein Buchstabe oder eine Gruppe von Buchstaben erzeugt). Wenn zwei Personen "gleichzeitig sprechen", produzieren sie ein Phonem, jedoch nicht mit derselben Frequenz. Wenn jedoch zwei Personen "A" sagen, können unsere Ohren die Tatsache, dass sie "A" sagen, ziemlich gut erfassen, selbst wenn sie eine andere Grundfrequenz verwenden.
Wenn zwei Wellenformen inkohärent sind (wie dies bei mehreren Personen der Fall ist), können wir die Potenz der einzelnen Stimmen addieren, die als Quadrat der Amplitude der einzelnen Stimmen gilt. Die tatsächlichen Amplituden addieren sich manchmal in Phase (doppelte Amplitude - vierfache Momentanleistung), andere Male stören sie destruktiv (Amplitude Null, Leistung Null). Der zeitliche Durchschnitt entspricht immer noch der Summe der Leistung der beiden Quellen.
Gleiches gilt für "viele" Quellen. Wenn Sie also 1000 Stimmen flüstern lassen, können Sie erwarten, dass die Amplitude im Durchschnitt um etwa 30 x zunimmt ($ \ sqrt {1000} $). Wenn diese Amplitude ausreicht, um die Hörschwelle für Sie zu überschreiten, können Sie sie möglicherweise hören. und wenn ihre Stimmen in der Tonhöhe "ziemlich ähnlich" sind, können Sie möglicherweise verstehen, was sie sagen. Letzteres ist jedoch keineswegs sicher - die Fähigkeit, Phoneme zu unterscheiden, wird schwieriger, wenn mehr Frequenzen vorhanden sind. Wenn jeder "auf seiner eigenen Tonhöhe" spricht, wird der resultierende Klang wie weißes Rauschen und Sie werden nicht verstehen, was gesagt wird.
UPDATE
Ich habe beschlossen, ein Experiment durchzuführen. Ich habe mich 19 Mal mit einer bestimmten Phrase aufgenommen, ungefähr im gleichen Tempo und in der gleichen Lautstärke. Ich habe die Amplitude der Aufnahme reduziert und etwas Rauschen hinzugefügt. Dies führte zu einer " unhörbaren Nachricht".
Als nächstes habe ich die Tonspur in 19 Segmente geschnitten, die ich mithilfe einer Signalverarbeitung ausgerichtet habe (am Anfang der Nachricht war ein deutlicher "th" -Ton zu hören). Das Hinzufügen dieser Signale (denken Sie daran - dies sind "unterschiedliche" Aufzeichnungen derselben Nachricht - ein bisschen wie wenn 19 verschiedene Personen gleichzeitig versuchen, dasselbe zu flüstern) mit derselben Menge an hinzugefügtem Rauschen führte zu an hörbare Nachricht.
Schließlich habe ich mit den Verzögerungen herumgespielt. Unter der Annahme, dass die Menschen nicht näher als 1 m voneinander entfernt stehen, können Sie davon ausgehen, dass ein großer "Chor" von Menschen eine gewisse relative Verzögerung beim Flüstern hat. Ich habe eine Verschiebung von "1 m Verzögerung" zwischen jedem der 19 Signale hinzugefügt, bevor ich sie addiere, und obwohl das Signal etwas weniger scharf wird, ist es immer noch deutlich hörbar.
Natürlich würde eine Gruppe von 1000 Personen zusammengestellt, um diese Verzögerung zu minimieren. Wenn Sie eine große Gruppe von Personen in einer Reihe konzentrischer (Halb-) Kreise zusammenstellen, muss die Verzögerung beim Eintreffen der Stimmen nicht viel schlimmer sein als in meinem Beispiel.
Wenn Sie an dem Python-Code interessiert sind, den ich für die Bildverarbeitung verwendet habe (Hinweis: Dieser Code enthält eine Reihe weiterer Experimente und Diagramme ... Sie können gerne damit spielen):
# liest die Flüsterdatei
importiere scipy.io.wavfile als WVF
von scipy.signal importieren argrelextrema
importiere numpy als np
importiere matplotlib.pyplot als plt
Welle importieren
# MP3 in WAV konvertieren:
# ffmpeg -i ~ / Desktop / 170826_0080.mp3 ~ / Desktop / longwhisper.wav "
A = WVF.read ('/ Users / floris / Desktop / longwhisper.wav')
# Dämpfen Sie die Schallwelle, damit ich später einen Dynamikbereich zum Hinzufügen habe
soundWave = 0.1 * A [1] .astype ('float')
N = len (A [1])
timeAxis = np.arange (N) .astype ('float') / A [0]
# Schallwelle visualisieren
plt.figure ()
plt.plot (timeAxis, soundWave)
plt.title ('ursprüngliche Schallwelle')
plt.show ()
# filtern
tt1 = np.linspace (-5,5,1000)
filt1 = np.exp (-tt1 * tt1 / 2)
filt1 = filt1 / np.sum (filt1)
tt = np.linspace (-5.5.50000)
filt = np.exp (-tt * tt / 2)
filt = filt / np.sum (filt)
baseeline = np.convolve (soundWave, filt1, mode = 'same')
# nur hohe Frequenzen:
hf = soundWave - Grundlinie
plt.figure ()
plt.plot (timeAxis, hf)
plt.plot (Zeitachse, Grundlinie, 'r')
plt.title ('nach Subtraktion der Grundlinie')
plt.show ()
soundPower = hf * hf
soundPower = np.convolve (soundPower, filt, mode = 'same')
plt.figure ()
plt.plot (timeAxis, soundPower)
plt.title ('geglättete Schallleistung')
plt.xlabel ('Zeit (en)')
plt.show ()
# finde die tatsächlichen Spitzen
pks = argrelextrema (soundPower, np.greater)
pkVals = soundPower [pks [0]]
pkSort = np.argsort (pkVals)
# Zeitpunkte, die den 40 größten Peaks entsprechen ... dies schließt die "Pops" ein
# am Anfang jeder Phrase
timePoints = np.sort (pks [0] [pkSort [-40:]])
# Sehen Sie sich den Abstand zwischen den Pops an - wir wissen, dass es ungefähr 82000 Samples sein sollten
makeSense = np.diff (timePoints)
startPoints = []
currentTime = makeSense [0]
lastTime = currentTime
für ii in makeSense [1:]:
if abs (currentTime - 82000 - lastTime) < abs (currentTime + ii - 82000 - lastTime):
startPoints.append (currentTime)
lastTime = currentTime
currentTime + = ii
# etwas zurückschieben - wir müssen kurz vor dem Pop beginnen:
startPoints = np.array (startPoints) + timePoints [0] -8000
plt.figure ()
für ii im Bereich (len (startPoints)):
temp = soundPower [startPoints [ii]: startPoints [ii] +78000]
plt.plot (temp / np.max (temp) + 0,1 * ii)
plt.title ('Schallleistung nach dem Ausrichten')
plt.show ()
# summiere die Blöcke:
# Hochfrequenzfilter auf das Rauschen - machen Sie es ein bisschen "rosa":
tt2 = np.linspace (-5,5,20)
filt2 = np.exp (-tt2 * tt2 / 2)
filt2 = filt2 / np.sum (filt2)
def addNoise (WaveIn, NoiseAmp):
Noise = np.convolve (np.random.random_integers (-noiseAmp, NoiseAmp, Größe = np.shape (waveIn)), filt2, mode = 'same')
Rückgabe von WaveIn + Rauschen
def writeFile (Block, Dateiname):
pv = block.astype (np.int16) .tobytes ()
sound = wave.open (Dateiname, 'w')
sound.setparams ((1,2,44100, 0, 'NONE', 'nicht komprimiert'))
sound.writeframes (pv)
sound.close ()
def hpFilter (Block, f = filt1):
Rückgabeblock - np.convolve (Block, f, 'same')
# für NoiseAmplitude in [0, 100, 200, 500, 1000]:
# Staffelung der Töne: 1 m = 1/300 Sekunde = 130 Samples
# Eine Menschenmenge von 1000 Personen könnte in einen Halbkreis von 50 Personen mit einer Tiefe von 20 Personen gestellt werden
# das macht das Delta x ungefähr 10 m, wenn sie "optimal ausgerichtet" sind
NoiseAmplitude = 500
für den Abstand in np.arange (0,2,0,5):
Staffelung = int (Abstand * 44100 / 340.)
Dauer = 78000
start = startPoints [0] -10 * Staffelung
sumblock = addNoise (soundWave [Start: Start + Dauer], NoiseAmplitude)
catblock = np.copy (Summenblock)
# füge die verschobenen Samples hinzu:
für ii im Bereich (1,19):
ti = startPoints [ii] + (ii-10) * Staffelung
temp = hpFilter (soundWave [ti: ti + dauer])
sumblock = sumblock + temp;
catblock = np.r_ [catblock, addNoise (Temp, NoiseAmplitude)]
writeFile (sumblock, '/ Users / floris / Desktop / onewhisper_% d_s =%. 1f.wav'% (NoiseAmplitude, Spacing))
writeFile (catblock, '/Users/floris/Desktop/evenwhisper_%d_s=%.1f.wav'%(noiseAmplitude, spacing))
plt.figure ()
plt.plot (Summenblock)
plt.title ('Summensignal: Rauschen =% d'% Rauschamplitude)
plt.show ()
Mit einem "Danke!"an AccidentalFourierTransform , der vorgeschlagen hat, Archive.org als möglichen Ort zum Hosten der Audiodateien zu verwenden.