import json,sys,tempfile from pathlib import Path from unittest.mock import patch import numpy as np import onnx from onnx import helper,TensorProto sys.path.insert(0,str(Path.cwd()/'onnx_runtime_0_1b_int8')) from arktts_runtime import runtime as rt with tempfile.TemporaryDirectory() as d: root=Path(d)/'package';root.mkdir();outside=Path(d)/'outside.onnx' model=helper.make_model(helper.make_graph([helper.make_node('Identity',['x'],['y'])],'benign-witness',[helper.make_tensor_value_info('x',TensorProto.FLOAT,[1])],[helper.make_tensor_value_info('y',TensorProto.FLOAT,[1])]),opset_imports=[helper.make_opsetid('',13)],ir_version=9) for p in [outside,root/'fast_ar_int8.onnx',root/'codec_decoder_fp16.onnx']:onnx.save(model,str(p)) (root/'runtime_manifest.json').write_text(json.dumps({'default_precision':'int8','available_precisions':['int8'],'slow_decode_models':{'int8':'../outside.onnx'},'semantic_begin_id':0,'num_codebooks':10})) with patch.object(rt.ArkTtsRuntime,'_validate_contract'),patch.object(rt,'PromptBuilder'),patch.object(rt,'VoiceStore'): try: runtime=rt.ArkTtsRuntime(root,root/'voices',threads=1) value=runtime.slow.run(None,{'x':np.array([7],dtype=np.float32)})[0].tolist() outcome={'outsideGraphLoaded':True,'output':value} except ValueError as e:outcome={'outsideGraphLoaded':False,'rejected':str(e)} print(json.dumps(outcome))