VR4RoboticArm2/VR4RoboticArm/Library/PackageCache/com.meta.xr.sdk.voice/Lib/Wit.ai/Scripts/Runtime/AudioDurationTracker.cs
IonutMocanu 48cccc22ad Main2
2025-09-08 11:13:29 +03:00

59 lines
1.5 KiB
C#

/*
* 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;
}
}
}