import numpy as np
from ruopus import OpusDecoder, OpusEncoder
SR = 48000
FRAME = 960
def main() -> None:
t = np.arange(FRAME) / SR
tone = (0.3 * np.sin(2 * np.pi * 440 * t)).astype(np.float32)
frame = np.stack([tone, tone * 0.9], axis=1) assert frame.shape == (FRAME, 2) and frame.dtype == np.float32
enc = OpusEncoder(2, bitrate=64000)
dec = OpusDecoder(2)
packet = enc.encode(frame) pcm = dec.decode_packet(packet)
print(f"encoded {frame.nbytes} bytes of PCM into a {len(packet)}-byte packet")
print(f"decoded back to {pcm.shape} {pcm.dtype}")
assert enc.final_range == dec.final_range
print(f"range-coder oracle matches: 0x{enc.final_range:08x}")
err = np.abs(pcm - frame).max()
print(f"peak reconstruction error: {err:.4f}")
if __name__ == "__main__":
main()