Initial Commit
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using Meta.WitAi.Data;
|
||||
|
||||
namespace Meta.WitAi
|
||||
{
|
||||
public class AudioDurationTracker
|
||||
{
|
||||
private readonly String _requestId;
|
||||
private double _bytesCaptured = 0.0;
|
||||
private readonly int _bytesPerSample;
|
||||
private readonly AudioEncoding _audioEncoding;
|
||||
private long _finalizeTimeStamp;
|
||||
private double _audioDurationMs;
|
||||
|
||||
|
||||
public AudioDurationTracker(string requestId, AudioEncoding audioEncoding)
|
||||
{
|
||||
_requestId = requestId;
|
||||
_audioEncoding = audioEncoding;
|
||||
_bytesPerSample = _audioEncoding.bits / 8;
|
||||
}
|
||||
|
||||
public void AddBytes(long bytes)
|
||||
{
|
||||
_bytesCaptured += bytes;
|
||||
}
|
||||
|
||||
public void FinalizeAudio()
|
||||
{
|
||||
_finalizeTimeStamp = (DateTime.UtcNow.Ticks / TimeSpan.TicksPerMillisecond);
|
||||
_audioDurationMs =
|
||||
(_bytesCaptured / (_audioEncoding.samplerate * _audioEncoding.numChannels * _bytesPerSample)) * 1000.0;
|
||||
}
|
||||
|
||||
public long GetFinalizeTimeStamp()
|
||||
{
|
||||
return _finalizeTimeStamp;
|
||||
}
|
||||
|
||||
public double GetAudioDuration()
|
||||
{
|
||||
return _audioDurationMs;
|
||||
}
|
||||
|
||||
public string GetRequestId()
|
||||
{
|
||||
return _requestId;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user