syntax = "proto3"; package tts.v1; option go_package = "gitea.nik4nao.com/nik/home-services/gen/tts/v1;ttsv1"; service TTSService { rpc Synthesize(SynthesizeRequest) returns (SynthesizeResponse); rpc ListSpeakers(ListSpeakersRequest) returns (ListSpeakersResponse); } // optional fields let the gateway apply its own defaults (matching the // reference uma-tts-api's noise_scale=0.37, noise_scale_w=0.46, // length_scale=1.3) when a client omits them. message SynthesizeRequest { string speaker_name = 1; string text = 2; optional float noise_scale = 3; optional float noise_scale_w = 4; optional float length_scale = 5; } message SynthesizeResponse { bytes audio = 1; string mime_type = 2; } message ListSpeakersRequest { string search = 1; // case-insensitive substring filter; empty returns all speakers } message ListSpeakersResponse { repeated string speaker_names = 1; }