2017-02-13 2 views
2

Ich bin daran interessiert, eine Audiodatei als Aufzeichnung von Ereignissen zu verwenden, die rechtzeitig stattfinden. Das heißt, ich werde mehrere Datenströme haben, die rechtzeitig ausgerichtet werden müssen, und ich möchte die Audiodatei als Referenz verwenden. Also, ich frage mich, ob es möglich ist, die tatsächliche Zeitbasis für einen Audiostream zu erhalten, der relativ zu einer Echtzeituhr referenziert wird?
Ich schätze, dass man die Dauer eines Audio-Clips aus der Sample-Anzahl und der Sampling-Frequenz (zB 16KHz) bestimmen kann. Für kurze Clips ist dies wahrscheinlich eine gute Schätzung, aber für lange (mehrstündige Aufzeichnungen) wie genau wird diese Schätzung sein? Ich möchte die Genauigkeit in weniger als einer Sekunde über mehrere Stunden beibehalten.So erhalten Sie eine genaue Audio-Zeitbasis

Anders gesagt, speichert die Audiodatei die tatsächliche Start- und Stoppzeit der Audioaufnahme, die auf die RTC (Echtzeituhr) bezogen ist. Dies würde es ermöglichen, eine Zeitbasis für jedes Sample in der Audiodatei zu erzeugen. Wenn ja, kann ich diese Daten von einer Python-Audiobibliothek abrufen?

Ich verwende MP4/AAC für die Codierung auf einer Android-Plattform und pydub für die Nachbearbeitung.

Danke.

+0

Ich glaube nicht, dass Audioaufnahmen eine Genauigkeit in der Zeit unter der Sekunde haben. [viele Leute] (https://www.google.com/search?client=safari&rls=en&q=audio+recording+drift&ie=UTF-8&oe=UTF-8) haben in ihren Audioaufnahmen "Drift" entdeckt und sich ausgedacht verschiedene Strategien, um mehrere (unabhängige) Aufnahmen desselben Ereignisses korrekt auszurichten. Insbesondere Podcaster, bei denen jeder Host sich lokal registriert und die Aufnahmen anschließend zusammenfasst – Jiaaro

Antwort

0

Wir kamen mit einer Antwort, die wie ein Klud, scheinen kann, aber ehrlich gesagt funktioniert ziemlich gut für uns. Es scheint, dass diese Audioformatspezifikation das Speichern von Zeitcode für den Beginn und das Ende der Sitzung nicht zulässt. Stattdessen haben wir den Anfangszeitstempel mit der Auflösung von Millisekunden, dem Moment, als die Aufnahmetaste gedrückt wurde, als Zeichenfolge im Dateinamen ("2017-02-13_10-04-27-943") codiert und die Audiositzung aufgezeichnet. Dann, als die Aufzeichnung gestoppt wurde, griffen wir zu einem anderen Zeitstempel, berechneten den Zeitunterschied in Millisekunden und fügten dann die Dauer als Zeichenkette in den Dateinamen ein, direkt nach dem Schließen der Datei ("Dur123456"). Der Zeitpunkt und die Dauer beziehen sich somit auf die RTC (Echtzeituhr) des Android-Telefons. Wir können dann die WAV/PCM-Zeitbasis auf die wahre Dauer umstellen. Wie sich herausstellt, ist "16KHz" nicht wirklich 16.000Hz. Wir finden Fehler in der Größenordnung von Sekunden für 10 Minuten Audioaufnahme. Es scheint nicht viel, aber für mehrstündige Aufnahmen summiert sich. Vielen Dank.

Verwandte Themen