2017-02-13 3 views
2

私は時間内に起こっているイベントの記録としてオーディオファイルを使用することに興味があります。つまり、複数のデータストリームが時間内に整列する必要があり、オーディオファイルを参照として使用したいと考えています。だから、リアルタイムクロックに関連して参照されるように、オーディオストリームの実際のタイムベースを取得することが可能であるかどうか疑問に思っていますか?
サンプル数とサンプリング周波数(たとえば、16KHz)からオーディオクリップの継続時間を判断できることを理解できます。短いクリップの場合、これはおそらく良い見積もりですが、長い時間(複数時間の録画)の場合、この見積もりはどのくらい正確でしょうか?私は複数時間に1秒未満の精度を維持したいと思っています。正確なオーディオタイムベースを取得する方法

言い換えれば、オーディオファイルは、RTC(リアルタイムクロック)を基準にして、オーディオ録音の実際の開始時間と終了時間を格納しますか?これにより、オーディオファイル内のすべてのサンプルのタイムベースを生成することができます。もしそうなら、私はこのデータをPythonオーディオライブラリから取得できますか?

私はAndroidプラットフォームでのエンコードにMP4/AACを使用し、後処理ではpydubを使用しています。

ありがとうございました。

+0

私はオーディオ録音が1秒未満の精度を持っているとは思わない。 [たくさんの人](https://www.google.com/search?client=safari&rls=en&q=audio+recording+drift&ie=UTF-8&oe=UTF-8)は、音声録音に「ドリフト」を発見し、考案しました同じイベントの複数の(独立した)レコーディングを正しく整列させるためのさまざまな戦略。それぞれのホストがローカルで自分自身を記録し、その後録音を結合するPodcasters – Jiaaro

答えて

0

私たちはクルージュのように見えるかもしれない答えを考え出しましたが、正直なところ、私たちにとってはかなりうまくいっています。オーディオフォーマット仕様では、セッションの開始と終了のタイムコードを格納することができないようです。そこで、代わりに、ファイル名( "2017-02-13_10-04-27-943")の文字列として、録音ボタンが押された瞬間のミリ秒の分解能で開始タイムスタンプをエンコードし、オーディオセッションを記録しました。その後、録音が停止すると、別のタイムスタンプをつかみ、時間差をミリ秒単位で計算した後、ファイルを閉じる直後( "Dur123456")にファイル名に文字列として追加します。したがって、時間の開始と継続時間は、Android端末のRTC(リアルタイムクロック)を参照します。次に、WAV/PCMタイムベースを真の持続時間に再マップすることができます。 「16KHz」は実際には16,000Hzではありません。私たちは、10分間のオーディオ録音で約1秒のオーダーでエラーを発見しています。多くのようには見えないかもしれませんが、複数時間録音の場合は合計されます。ありがとう。

関連する問題