Text-to-Speech
English
German
voice-acting
qwen3
moss-audio-tokenizer-v2
audio-generation
ChristophSchuhmann's picture
Document architecture, prompts, code, and full run statistics
d911efa verified
Raw History Blame Contribute Delete
7.7 kB
"""Bounded random access to indexed JSONL metadata and existing codec shards.
Only offsets are memory-mapped. No corpus-sized Python list or concatenated
audio/code tensor is copied into each GPU process. TAR member indices and
Parquet reference tables are kept in small per-thread LRU caches.
"""
from collections import OrderedDict
import hashlib
import io
import json
import os
from pathlib import Path
import tarfile
import threading
import numpy as np
class ShardReader:
def __init__(self, capacity=16, file_capacity=None):
import resource
self.capacity = capacity
soft_limit = resource.getrlimit(resource.RLIMIT_NOFILE)[0]
self.file_capacity = file_capacity or max(32, min(2048, soft_limit // 2))
self.local = threading.local()
def cache(self):
if not hasattr(self.local, 'files'):
self.local.files = OrderedDict()
self.local.tables = OrderedDict()
self.local.members = OrderedDict()
return self.local
def bytes_at(self, path, offset, size):
state = self.cache()
if path not in state.files:
state.files[path] = os.open(path, os.O_RDONLY)
while len(state.files) > self.file_capacity:
_, fd = state.files.popitem(last=False)
os.close(fd)
fd = state.files[path]
state.files.move_to_end(path)
value = os.pread(fd, int(size), int(offset))
if len(value) != size:
raise IOError(f'Short shard read: {path}@{offset}+{size}')
return value
def member(self, path, name):
state = self.cache()
if path not in state.members:
with tarfile.open(path, 'r:') as archive:
state.members[path] = {m.name: (m.offset_data, m.size) for m in archive if m.isfile()}
while len(state.members) > self.capacity:
state.members.popitem(last=False)
state.members.move_to_end(path)
offset, size = state.members[path][name]
return self.bytes_at(path, offset, size)
def codes(self, locator):
kind = locator.get('kind', 'tar_moss_npy')
if kind == 'tar_moss_npy':
blob = (self.bytes_at(locator['path'], locator['offset'], locator['size'])
if 'offset' in locator else self.member(locator['path'], locator['member']))
try:
result = np.load(io.BytesIO(blob), allow_pickle=False)
except ValueError:
# Raw little-endian uint16 dump without NumPy header
# (sidecar packer wrote tobytes()); shape from byte count.
result = np.frombuffer(blob, dtype=np.uint16).reshape(-1, 12)
assert result.dtype == np.uint16
elif kind == 'local_moss_parquet':
import pyarrow.parquet as pq
state = self.cache()
key = (locator['path'], locator['codes_field'], locator['frames_field'])
if key not in state.tables:
state.tables[key] = pq.read_table(locator['path'], columns=[locator['codes_field'], locator['frames_field']])
while len(state.tables) > self.capacity:
state.tables.popitem(last=False)
state.tables.move_to_end(key)
row = state.tables[key].slice(locator['row_index'], 1).to_pylist()[0]
frames = int(row[locator['frames_field']])
result = np.frombuffer(row[locator['codes_field']], dtype='<i2').reshape(frames, 12)
else:
raise ValueError(f'Unsupported verified codec locator: {kind}')
assert result.ndim == 2 and result.shape[1] == 12 and len(result) > 0
assert int(result.min()) >= 0 and int(result.max()) < 1024
expected = locator.get('full_frames')
if expected is not None:
assert len(result) == expected
if 'crop_frames' in locator:
start, length = int(locator.get('crop_start_frame', 0)), int(locator['crop_frames'])
assert start >= 0 and length > 0 and start + length <= len(result)
result = result[start:start + length]
return result
def record(self, locator):
blob = (self.bytes_at(locator['path'], locator['offset'], locator['size'])
if 'offset' in locator else self.member(locator['path'], locator['member']))
return json.loads(blob)
class IndexedRecords:
def __init__(self, manifest):
self.manifest_path = Path(manifest)
self.spec = json.loads(self.manifest_path.read_text())
root = self.manifest_path.parent
self.offsets = np.load(root / self.spec['offsets'], mmap_mode='r', allow_pickle=False)
self.path = root / self.spec['records']
self.fd = os.open(self.path, os.O_RDONLY)
assert len(self.offsets) == self.spec['samples'] + 1
assert int(self.offsets[0]) == 0 and int(self.offsets[-1]) == self.path.stat().st_size
self.reader = ShardReader()
def __len__(self):
return len(self.offsets) - 1
def row(self, index):
start, end = int(self.offsets[index]), int(self.offsets[index + 1])
return json.loads(os.pread(self.fd, end - start, start))
def example(self, index, packer):
from modes import verify_record_mode
row = self.row(index)
verify_record_mode(row)
mode = row['mode']
meta = self.reader.record(row['record_locator'])
assert meta['uid'] == row['uid']
meta['frames'] = int(meta['moss_frames'])
codes = self.reader.codes(row['target_locator'])
assert len(codes) == meta['frames']
reference = None
if mode == 'reference':
assert row['reference_uid'] != row['uid'] and row['reference_evidence']
reference = self.reader.codes(row['reference_locator'])
assert 0 < len(reference) <= 37
elif mode == 'score':
meta['conditioning_measurements'] = row['conditioning_measurements']
result = packer.pack_mode(meta, codes, mode, reference)
result['accounting'] = {'uid': row['uid'], 'mode': mode, 'frames': len(codes),
'target_audio_hours': float(meta['dur_s']) / 3600,
'reference_frames': len(reference) if reference is not None else 0}
return result
def write_manifest(directory, rows, contract):
directory = Path(directory)
directory.mkdir(parents=True, exist_ok=True)
offsets, n, modes, duration = [0], 0, {}, 0.
path = directory / 'records.jsonl'
digest = hashlib.sha256()
seen = set()
with path.with_suffix('.jsonl.tmp').open('wb') as stream:
for row in rows:
assert row['uid'] not in seen, row['uid']
seen.add(row['uid'])
assert row['mode'] in ('instruction', 'reference', 'score')
blob = (json.dumps(row, ensure_ascii=False, separators=(',', ':')) + '\n').encode()
stream.write(blob); digest.update(blob); offsets.append(offsets[-1] + len(blob)); n += 1
modes[row['mode']] = modes.get(row['mode'], 0) + 1
duration += row.get('dur_s', 0.) / 3600
path.with_suffix('.jsonl.tmp').replace(path)
np.save(directory / 'offsets.npy', np.asarray(offsets, dtype=np.int64), allow_pickle=False)
result = dict(contract, records=path.name, offsets='offsets.npy', samples=n, modes=modes,
target_audio_hours=duration, records_sha256=digest.hexdigest())
temporary = directory / 'manifest.json.tmp'
temporary.write_text(json.dumps(result, indent=2) + '\n')
temporary.replace(directory / 'manifest.json')
return directory / 'manifest.json'