#!/usr/bin/env python3 """Unknown-duration waveform/byte streaming through files or raw stdin/stdout.""" import argparse from contextlib import ExitStack import hashlib import json import os from pathlib import Path import sys import time import numpy as np import soundfile as sf import torch ROOT=Path(__file__).resolve().parents[1] sys.path.insert(0,str(ROOT)) from tinyasr.codec_factory_v3 import load_codec_checkpoint from tinyasr.codec_live_v1 import LiveDecoder,LiveEncoder from tinyasr.codec_phase_streaming_v1 import PhaseLiveDecoder from tinyasr.codec_phase_residual_v1 import PhaseResidualDecoder def chunks(source,size): read=getattr(source,'read1',source.read) while True: data=read(size) if not data:break yield data def raw_audio(source,format,block_samples): width=2 if format=='s16le' else 4 pending=b'' for data in chunks(source,block_samples*width): data=pending+data;complete=len(data)//width*width;pending=data[complete:] if complete: x=np.frombuffer(data[:complete],dtype='