Spaces:
Runtime error
Runtime error
| """pyaudioop - audioop shim for Python 3.13+""" | |
| class error(Exception): | |
| pass | |
| def max(data, width): | |
| result = 0 | |
| for i in range(0, len(data), width): | |
| chunk = data[i:i+width] | |
| if len(chunk) == width: | |
| val = int.from_bytes(chunk, "little") | |
| if val > result: result = val | |
| return result | |
| def min(data, width): | |
| result = (1 << (width * 8)) - 1 | |
| for i in range(0, len(data), width): | |
| chunk = data[i:i+width] | |
| if len(chunk) == width: | |
| val = int.from_bytes(chunk, "little") | |
| if val < result: result = val | |
| return result | |
| def rms(data, width): | |
| count = len(data) // width | |
| if count == 0: return 0 | |
| total = sum(int.from_bytes(data[i:i+width], "little")**2 | |
| for i in range(0, len(data), width) if len(data[i:i+width]) == width) | |
| import math | |
| return int(math.sqrt(total / count)) | |
| def add(data1, data2, width): | |
| result = bytearray() | |
| for i in range(0, min(len(data1), len(data2)), width): | |
| if len(data1[i:i+width]) == width and len(data2[i:i+width]) == width: | |
| v = int.from_bytes(data1[i:i+width], "little") + int.from_bytes(data2[i:i+width], "little") | |
| max_val = (1 << (width * 8)) - 1 | |
| result.extend(min(v, max_val).to_bytes(width, "little")) | |
| return bytes(result) | |
| def mul(data, factor, width): | |
| result = bytearray() | |
| for i in range(0, len(data), width): | |
| chunk = data[i:i+width] | |
| if len(chunk) == width: | |
| v = min(int.from_bytes(chunk, "little") * factor, (1 << (width*8))-1) | |
| result.extend(v.to_bytes(width, "little")) | |
| return bytes(result) | |
| def bias(data, width): | |
| return bytes(width) | |
| def reverse(data, width): | |
| result = bytearray() | |
| for i in range(0, len(data), width): | |
| chunk = data[i:i+width] | |
| if len(chunk) == width: | |
| v = (1 << (width*8)) - 1 - int.from_bytes(chunk, "little") | |
| result.extend(v.to_bytes(width, "little")) | |
| return bytes(result) | |
| # Stub remaining | |
| def ulaw2lin(data): return data | |
| def lin2alaw(data, width): return data | |
| def alaw2lin(data): return data | |
| def lin2adpcm(data, width): return data, () | |
| def adpcm2lin(data): return data | |
| # pyaudioop compatibility layer | |
| import audioop | |
| audioop.error = error | |
| audioop.max = max | |
| audioop.min = min | |
| audioop.rms = rms | |
| audioop.add = add | |
| audioop.mul = mul | |
| audioop.bias = bias | |
| audioop.reverse = reverse | |
| audioop.ulaw2lin = ulaw2lin | |
| audioop.lin2alaw = lin2alaw | |
| audioop.alaw2lin = alaw2lin | |
| audioop.lin2adpcm = lin2adpcm | |
| audioop.adpcm2lin = adpcm2lin | |