diff --git a/README.md b/README.md index 3662b05..3e3ff4f 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ You can route TTS through a custom hosting provider like Baseten while keeping t ```java import resources.texttospeech.requests.CreateStreamTtsRequestPayload; -import resources.texttospeech.types.CreateStreamTtsRequestPayloadLanguage; +import resources.texttospeech.types.TtsLanguage; import java.io.InputStream; // Initialize the Baseten Mars8-Flash custom hosting provider. @@ -76,7 +76,7 @@ ITtsProvider ttsProvider = new BasetenProvider( // Use the provider to generate speech InputStream audioStream = ttsProvider.tts(CreateStreamTtsRequestPayload.builder() .text("Hello from Java via Baseten Mars8-Flash!") - .language(CreateStreamTtsRequestPayloadLanguage.EN_US) + .language(TtsLanguage.EN_US) .voiceId(1) // Required by the SDK's staged builder; ignored by the Baseten provider .build(), null); ``` @@ -99,8 +99,8 @@ Convert text into spoken audio using one of Camb AI's high-quality voices. ```java import resources.texttospeech.requests.CreateStreamTtsRequestPayload; -import resources.texttospeech.types.CreateStreamTtsRequestPayloadLanguage; -import resources.texttospeech.types.CreateStreamTtsRequestPayloadSpeechModel; +import resources.texttospeech.types.TtsLanguage; +import resources.texttospeech.types.SpeechModel; import types.OutputFormat; import types.StreamTtsOutputConfiguration; import java.io.InputStream; @@ -112,8 +112,8 @@ import java.io.File; InputStream audioStream = client.textToSpeech().tts(CreateStreamTtsRequestPayload.builder() .text("Hello from Camb AI! This is a test.") .voiceId(20303) - .language(CreateStreamTtsRequestPayloadLanguage.EN_US) - .speechModel(CreateStreamTtsRequestPayloadSpeechModel.MARSPRO) + .language(TtsLanguage.EN_US) + .speechModel(SpeechModel.MARSPRO) .outputConfiguration(StreamTtsOutputConfiguration.builder().format(OutputFormat.WAV).build()) .build()); diff --git a/docs/java_sdk_guide.mdx b/docs/java_sdk_guide.mdx index 0cf7c69..d5b41af 100644 --- a/docs/java_sdk_guide.mdx +++ b/docs/java_sdk_guide.mdx @@ -52,8 +52,8 @@ Generate and stream speech in real-time. The SDK returns an `InputStream` for th ```java import core.ClientOptions; import resources.texttospeech.requests.CreateStreamTtsRequestPayload; -import resources.texttospeech.types.CreateStreamTtsRequestPayloadLanguage; -import resources.texttospeech.types.CreateStreamTtsRequestPayloadSpeechModel; +import resources.texttospeech.types.TtsLanguage; +import resources.texttospeech.types.SpeechModel; import types.Languages; import java.io.InputStream; import java.io.FileOutputStream; @@ -78,9 +78,9 @@ public class BasicTts { try { InputStream audioStream = client.textToSpeech().tts(CreateStreamTtsRequestPayload.builder() .text("Hello from Camb AI! This is a demonstration of our advanced text-to-speech technology using the MARS Pro model.") - .language(CreateStreamTtsRequestPayloadLanguage.EN_US) + .language(TtsLanguage.EN_US) .voiceId(20303) - .speechModel(CreateStreamTtsRequestPayloadSpeechModel.MARSPRO) + .speechModel(SpeechModel.MARSPRO) .outputConfiguration(StreamTtsOutputConfiguration.builder().format(OutputFormat.WAV).build()) .build()); @@ -128,17 +128,17 @@ Camb.ai offers three MARS models optimized for different use cases: ```java MARS Flash -.speechModel(CreateStreamTtsRequestPayloadSpeechModel.MARSFLASH) +.speechModel(SpeechModel.MARSFLASH) // Best for: Real-time voice agents, low-latency applications // Sample rate: 22.05kHz ``` ```java MARS Pro -.speechModel(CreateStreamTtsRequestPayloadSpeechModel.MARSPRO) +.speechModel(SpeechModel.MARSPRO) // Best for: Audio production, high-quality content // Sample rate: 48kHz ``` ```java MARS Instruct -.speechModel(CreateStreamTtsRequestPayloadSpeechModel.MARSINSTRUCT) +.speechModel(SpeechModel.MARSINSTRUCT) .userInstructions("Speak in a warm, friendly tone") // Best for: Fine-grained control over tone and style // Sample rate: 22.05kHz @@ -163,18 +163,18 @@ for (var voice : voices) { ## Language Support -Camb.ai supports 140+ languages. Specify the language using the `CreateStreamTtsRequestPayloadLanguage` enum: +Camb.ai supports 140+ languages. Specify the language using the `TtsLanguage` enum: Languages supported by each model mentioned at [MARS Models](https://docs.camb.ai/models). ```java // English (US) -.language(CreateStreamTtsRequestPayloadLanguage.EN_US) +.language(TtsLanguage.EN_US) // Spanish -.language(CreateStreamTtsRequestPayloadLanguage.ES_ES) +.language(TtsLanguage.ES_ES) // French -.language(CreateStreamTtsRequestPayloadLanguage.FR_FR) +.language(TtsLanguage.FR_FR) ``` --- diff --git a/examples/BasetenExample.java b/examples/BasetenExample.java index 4120160..c2cbc77 100644 --- a/examples/BasetenExample.java +++ b/examples/BasetenExample.java @@ -1,5 +1,5 @@ import resources.texttospeech.requests.CreateStreamTtsRequestPayload; -import resources.texttospeech.types.CreateStreamTtsRequestPayloadLanguage; +import resources.texttospeech.types.TtsLanguage; import java.io.InputStream; import java.io.FileOutputStream; import java.io.File; @@ -60,7 +60,7 @@ public static void main(String[] args) { // when routing through a custom hosting provider. CreateStreamTtsRequestPayload request = CreateStreamTtsRequestPayload.builder() .text("Hello. This is speech generated via a Baseten Mars8-Flash custom hosting provider.") - .language(CreateStreamTtsRequestPayloadLanguage.EN_US) + .language(TtsLanguage.EN_US) .voiceId(1) // Required by the SDK's staged builder; ignored by the Baseten provider .build(); diff --git a/examples/BasicTts.java b/examples/BasicTts.java index b671b91..5126580 100644 --- a/examples/BasicTts.java +++ b/examples/BasicTts.java @@ -1,7 +1,7 @@ import core.ClientOptions; import resources.texttospeech.requests.CreateStreamTtsRequestPayload; -import resources.texttospeech.types.CreateStreamTtsRequestPayloadLanguage; -import resources.texttospeech.types.CreateStreamTtsRequestPayloadSpeechModel; +import resources.texttospeech.types.TtsLanguage; +import resources.texttospeech.types.SpeechModel; import types.Languages; import java.io.InputStream; import java.io.FileOutputStream; @@ -28,9 +28,9 @@ public static void main(String[] args) { // Model: MARSPRO, Format: WAV InputStream audioStream = client.textToSpeech().tts(CreateStreamTtsRequestPayload.builder() .text("Hello from Camb AI! This is a demonstration of our advanced text-to-speech technology using the MARS Pro model.") - .language(CreateStreamTtsRequestPayloadLanguage.EN_US) + .language(TtsLanguage.EN_US) .voiceId(20303) - .speechModel(CreateStreamTtsRequestPayloadSpeechModel.MARSPRO) + .speechModel(SpeechModel.MARSPRO) .outputConfiguration(StreamTtsOutputConfiguration.builder().format(OutputFormat.WAV).build()) .build()); diff --git a/src/main/java/resources/texttospeech/requests/CreateStreamTtsRequestPayload.java b/src/main/java/resources/texttospeech/requests/CreateStreamTtsRequestPayload.java index 21ab1ab..9be312a 100644 --- a/src/main/java/resources/texttospeech/requests/CreateStreamTtsRequestPayload.java +++ b/src/main/java/resources/texttospeech/requests/CreateStreamTtsRequestPayload.java @@ -21,8 +21,8 @@ import java.util.Objects; import java.util.Optional; import org.jetbrains.annotations.NotNull; -import resources.texttospeech.types.CreateStreamTtsRequestPayloadLanguage; -import resources.texttospeech.types.CreateStreamTtsRequestPayloadSpeechModel; +import resources.texttospeech.types.TtsLanguage; +import resources.texttospeech.types.SpeechModel; import types.StreamTtsInferenceOptions; import types.StreamTtsOutputConfiguration; import types.StreamTtsVoiceSettings; @@ -34,11 +34,11 @@ public final class CreateStreamTtsRequestPayload { private final String text; - private final CreateStreamTtsRequestPayloadLanguage language; + private final TtsLanguage language; private final int voiceId; - private final Optional speechModel; + private final Optional speechModel; private final Optional userInstructions; @@ -52,8 +52,8 @@ public final class CreateStreamTtsRequestPayload { private final Map additionalProperties; - private CreateStreamTtsRequestPayload(String text, CreateStreamTtsRequestPayloadLanguage language, - int voiceId, Optional speechModel, + private CreateStreamTtsRequestPayload(String text, TtsLanguage language, + int voiceId, Optional speechModel, Optional userInstructions, Optional enhanceNamedEntitiesPronunciation, Optional outputConfiguration, Optional voiceSettings, @@ -77,7 +77,7 @@ public String getText() { } @JsonProperty("language") - public CreateStreamTtsRequestPayloadLanguage getLanguage() { + public TtsLanguage getLanguage() { return language; } @@ -87,7 +87,7 @@ public int getVoiceId() { } @JsonProperty("speech_model") - public Optional getSpeechModel() { + public Optional getSpeechModel() { return speechModel; } @@ -152,7 +152,7 @@ public interface TextStage { } public interface LanguageStage { - VoiceIdStage language(@NotNull CreateStreamTtsRequestPayloadLanguage language); + VoiceIdStage language(@NotNull TtsLanguage language); } public interface VoiceIdStage { @@ -162,9 +162,9 @@ public interface VoiceIdStage { public interface _FinalStage { CreateStreamTtsRequestPayload build(); - _FinalStage speechModel(Optional speechModel); + _FinalStage speechModel(Optional speechModel); - _FinalStage speechModel(CreateStreamTtsRequestPayloadSpeechModel speechModel); + _FinalStage speechModel(SpeechModel speechModel); _FinalStage userInstructions(Optional userInstructions); @@ -194,7 +194,7 @@ _FinalStage enhanceNamedEntitiesPronunciation( public static final class Builder implements TextStage, LanguageStage, VoiceIdStage, _FinalStage { private String text; - private CreateStreamTtsRequestPayloadLanguage language; + private TtsLanguage language; private int voiceId; @@ -208,7 +208,7 @@ public static final class Builder implements TextStage, LanguageStage, VoiceIdSt private Optional userInstructions = Optional.empty(); - private Optional speechModel = Optional.empty(); + private Optional speechModel = Optional.empty(); @JsonAnySetter private Map additionalProperties = new HashMap<>(); @@ -239,7 +239,7 @@ public LanguageStage text(@NotNull String text) { @java.lang.Override @JsonSetter("language") - public VoiceIdStage language(@NotNull CreateStreamTtsRequestPayloadLanguage language) { + public VoiceIdStage language(@NotNull TtsLanguage language) { this.language = Objects.requireNonNull(language, "language must not be null"); return this; } @@ -335,7 +335,7 @@ public _FinalStage userInstructions(Optional userInstructions) { } @java.lang.Override - public _FinalStage speechModel(CreateStreamTtsRequestPayloadSpeechModel speechModel) { + public _FinalStage speechModel(SpeechModel speechModel) { this.speechModel = Optional.ofNullable(speechModel); return this; } @@ -345,7 +345,7 @@ public _FinalStage speechModel(CreateStreamTtsRequestPayloadSpeechModel speechMo value = "speech_model", nulls = Nulls.SKIP ) - public _FinalStage speechModel(Optional speechModel) { + public _FinalStage speechModel(Optional speechModel) { this.speechModel = speechModel; return this; } diff --git a/src/main/java/resources/texttospeech/types/CreateStreamTtsRequestPayloadSpeechModel.java b/src/main/java/resources/texttospeech/types/SpeechModel.java similarity index 75% rename from src/main/java/resources/texttospeech/types/CreateStreamTtsRequestPayloadSpeechModel.java rename to src/main/java/resources/texttospeech/types/SpeechModel.java index 4206311..1546619 100644 --- a/src/main/java/resources/texttospeech/types/CreateStreamTtsRequestPayloadSpeechModel.java +++ b/src/main/java/resources/texttospeech/types/SpeechModel.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonValue; import java.lang.String; -public enum CreateStreamTtsRequestPayloadSpeechModel { +public enum SpeechModel { AUTO("auto"), MARS8("mars-8"), @@ -24,11 +24,17 @@ public enum CreateStreamTtsRequestPayloadSpeechModel { MARSFLASH("mars-flash"), - MARSINSTRUCT("mars-instruct"); + MARSINSTRUCT("mars-instruct"), + + MARS_PRO("mars-pro"), + + MARS_FLASH("mars-flash"), + + MARS_INSTRUCT("mars-instruct"); private final String value; - CreateStreamTtsRequestPayloadSpeechModel(String value) { + SpeechModel(String value) { this.value = value; } diff --git a/src/main/java/resources/texttospeech/types/CreateStreamTtsRequestPayloadLanguage.java b/src/main/java/resources/texttospeech/types/TtsLanguage.java similarity index 93% rename from src/main/java/resources/texttospeech/types/CreateStreamTtsRequestPayloadLanguage.java rename to src/main/java/resources/texttospeech/types/TtsLanguage.java index ba4423b..773a896 100644 --- a/src/main/java/resources/texttospeech/types/CreateStreamTtsRequestPayloadLanguage.java +++ b/src/main/java/resources/texttospeech/types/TtsLanguage.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonValue; import java.lang.String; -public enum CreateStreamTtsRequestPayloadLanguage { +public enum TtsLanguage { AR_KW("ar-kw"), DE_CH("de-ch"), @@ -134,7 +134,7 @@ public enum CreateStreamTtsRequestPayloadLanguage { private final String value; - CreateStreamTtsRequestPayloadLanguage(String value) { + TtsLanguage(String value) { this.value = value; }