// Convert a Uint8Array containing pcm_s16le data to a Float32Array containing
// pcm_f32le data.
function toFloat32Array(uint8Array: Uint8Array) {
	const dataView = new DataView(uint8Array.buffer);
	const float32Array = new Float32Array(uint8Array.length / 2);

	for (let i = 0; i < float32Array.length; i++) {
		const int16 = dataView.getInt16(i * 2, true); // Read little-endian int16
		float32Array[i] = Math.max(-1, int16 / 32768.0); // Normalize to [-1.0, 1.0)
	}

	return float32Array;
}