1 Commits
v32 ... v33

Author SHA1 Message Date
Andrew Stein
b8d3ae7c90 Preliminary Streamed response test 2023-02-26 00:12:36 -05:00
7 changed files with 59 additions and 5 deletions

View File

@@ -1,10 +1,10 @@
package net.andrewcpu.elevenlabs.api;
import net.andrewcpu.elevenlabs.ElevenLabsAPI;
import net.andrewcpu.elevenlabs.api.net.requests.voices.*;
import net.andrewcpu.elevenlabs.api.net.requests.voices.settings.GetDefaultVoiceSettingsRequest;
import net.andrewcpu.elevenlabs.api.net.requests.voices.settings.GetVoiceSettingsRequest;
import net.andrewcpu.elevenlabs.api.net.requests.voices.settings.UpdateVoiceSettingsRequest;
import net.andrewcpu.elevenlabs.api.net.requests.voices.tts.GenerateTextToSpeechRequest;
import net.andrewcpu.elevenlabs.elements.voice.Voice;
import net.andrewcpu.elevenlabs.elements.voice.VoiceSettings;
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsException;

View File

@@ -17,7 +17,7 @@ import java.nio.charset.StandardCharsets;
public class ElevenLabsResponse<T> {
private final InputStream errorStream;
private JSONObject error;
private final InputStream successStream;
public final InputStream successStream;
private JSONObject successful;
private final ElevenLabsRequest<T> request;
private final int responseCode;

View File

@@ -1,6 +1,7 @@
package net.andrewcpu.elevenlabs.api.net.requests.voices;
package net.andrewcpu.elevenlabs.api.net.requests.voices.tts;
import net.andrewcpu.elevenlabs.api.net.ElevenLabsRequest;
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsPostRequest;
import net.andrewcpu.elevenlabs.api.net.transformers.FilePingPongTransformer;
import net.andrewcpu.elevenlabs.elements.voice.Voice;
import net.andrewcpu.elevenlabs.elements.voice.VoiceSettings;
@@ -12,7 +13,7 @@ import java.io.File;
import java.util.List;
@SuppressWarnings("unchecked")
public class GenerateTextToSpeechRequest extends ElevenLabsRequest<File> {
public class GenerateTextToSpeechRequest extends ElevenLabsPostRequest<File> {
private static JSONObject buildBody(VoiceSettings settings, String text){
JSONObject object = new JSONObject();
@@ -21,7 +22,7 @@ public class GenerateTextToSpeechRequest extends ElevenLabsRequest<File> {
return object;
}
public GenerateTextToSpeechRequest(Voice voice, VoiceSettings settings, String text, File outputFile){
super(List.of(voice.getVoiceId()), buildBody(settings, text), HTTPMethod.POST, new FilePingPongTransformer(outputFile));
super(List.of(voice.getVoiceId()), buildBody(settings, text), new FilePingPongTransformer(outputFile));
responseType = (ResponseType.FILE_STREAM);
outputFilePath = (outputFile);
}

View File

@@ -0,0 +1,32 @@
package net.andrewcpu.elevenlabs.api.net.requests.voices.tts;
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsPostRequest;
import net.andrewcpu.elevenlabs.api.net.transformers.RequestInputStreamTransformer;
import net.andrewcpu.elevenlabs.elements.voice.Voice;
import net.andrewcpu.elevenlabs.elements.voice.VoiceSettings;
import net.andrewcpu.elevenlabs.enums.ResponseType;
import org.json.simple.JSONObject;
import java.io.File;
import java.io.InputStream;
import java.util.List;
public class GenerateTextToSpeechStreamRequest extends ElevenLabsPostRequest<InputStream> {
private static JSONObject buildBody(VoiceSettings settings, String text){
JSONObject object = new JSONObject();
object.put("text", text);
object.put("voice_settings", settings.toJSON());
return object;
}
public GenerateTextToSpeechStreamRequest(Voice voice, VoiceSettings settings, String text, File outputFile){
super(List.of(voice.getVoiceId()), buildBody(settings, text), new RequestInputStreamTransformer());
responseType = (ResponseType.FILE_STREAM);
outputFilePath = (outputFile);
}
@Override
public String getEndpoint() {
return "text-to-speech/{voiceId}/stream";
}
}

View File

@@ -0,0 +1,13 @@
package net.andrewcpu.elevenlabs.api.net.transformers;
import net.andrewcpu.elevenlabs.api.net.ElevenLabsResponse;
import java.io.InputStream;
public class RequestInputStreamTransformer extends ResultTransformerAdapter<InputStream> {
@Override
public InputStream transform(ElevenLabsResponse<InputStream> response) {
return response.successStream;
}
}

View File

@@ -1,9 +1,11 @@
package net.andrewcpu.elevenlabs.api.net.transformers;
import net.andrewcpu.elevenlabs.api.net.ElevenLabsResponse;
import org.json.simple.JSONObject;
public abstract class ResultTransformer<T> {
public abstract T transform(JSONObject object);
public abstract T transform(String object);
public abstract T transform();
public abstract T transform(ElevenLabsResponse<T> response);
}

View File

@@ -1,5 +1,6 @@
package net.andrewcpu.elevenlabs.api.net.transformers;
import net.andrewcpu.elevenlabs.api.net.ElevenLabsResponse;
import org.json.simple.JSONObject;
public class ResultTransformerAdapter<T> extends ResultTransformer<T> {
@@ -18,4 +19,9 @@ public class ResultTransformerAdapter<T> extends ResultTransformer<T> {
public T transform() {
throw new UnsupportedOperationException("transform() is not defined.");
}
@Override
public T transform(ElevenLabsResponse<T> response) {
throw new UnsupportedOperationException("transform(Response response) is not defined.");
}
}