$ cat node-template.py
T
Text to Speech
// Converts text to speech with support for 23 languages and optional voice cloning. Produces natural, expressive speech from text input.
Process
Audio
template.py
1import os2import sys3import json4import traceback56from gais import Gais78INPUT_DIR = "/data/input"9OUTPUT_DIR = "/data/output"101112def main():13 try:14 input_json = sys.stdin.read()15 execution_input = json.loads(input_json)16 inputs = execution_input.get("inputs", {})1718 prompt = inputs.get("prompt", "")19 voice_reference = inputs.get("voice_reference", "")20 language = inputs.get("language", "Italian")21 seed = int(inputs.get("seed", 0))2223 if not prompt:24 raise ValueError("Prompt input is required")2526 os.makedirs(OUTPUT_DIR, exist_ok=True)2728 # Resolve optional voice reference path29 voice_path = None30 if voice_reference:31 voice_path = os.path.join(INPUT_DIR, voice_reference)32 if not os.path.exists(voice_path):33 raise FileNotFoundError(f"Voice reference not found: {voice_path}")3435 print(36 f"Requesting speech generation: language={language}, seed={seed}, "37 f"voice_cloning={bool(voice_reference)}",38 file=sys.stderr,39 )4041 result = Gais.speech.create(42 text=prompt,43 language=language,44 seed=seed,45 voice_reference=voice_path,46 )4748 # Save result49 out_filename = "generated_speech.mp3"50 out_path = os.path.join(OUTPUT_DIR, out_filename)51 with open(out_path, "wb") as f:52 f.write(result.content)5354 inference_time = result.metadata.get("inference_time_ms", "unknown")55 print(56 f"Speech generated: time={inference_time}ms, language={language}, "57 f"seed={seed}, voice_cloning={bool(voice_reference)}",58 file=sys.stderr,59 )6061 # Flat output -- keys match OUTPUT_SCHEMA62 output = {63 "audio": out_filename,64 }65 print(json.dumps(output, indent=2))6667 except Exception as e:68 error_output = {69 "error": str(e),70 "errorType": type(e).__name__,71 "traceback": traceback.format_exc(),72 }73 print(json.dumps(error_output), file=sys.stderr)74 sys.exit(1)757677if __name__ == "__main__":78 main()$ git log --oneline
v1.6.0
HEAD
2026-05-07v1.3.02026-03-29
v1.2.02026-03-20