mirror of
https://github.com/Andrewcpu/elevenlabs-api.git
synced 2026-05-06 03:00:23 -04:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
78dba6753d | ||
|
|
49e2e716eb |
10
README.md
10
README.md
@@ -293,11 +293,11 @@ History(List<HistoryItem> history)
|
||||
```java
|
||||
History.HistoryItem(String historyItemId, String voiceId, String voiceName, String text,
|
||||
long dateUnix, int characterCountChangeFrom, int characterCountChangeTo,
|
||||
String contentType, String state)
|
||||
String contentType, GenerationState state)
|
||||
```
|
||||
|
||||
```java
|
||||
public enum State {
|
||||
public enum GenerationState {
|
||||
CREATED,
|
||||
DELETED,
|
||||
PROCESSING;
|
||||
@@ -311,8 +311,8 @@ User(Subscription subscription, boolean isNewUser, String xiApiKey)
|
||||
```java
|
||||
Subscription(String tier, int characterCount, int characterLimit, boolean canExtendCharacterLimit,
|
||||
boolean allowedToExtendCharacterLimit, long nextCharacterCountResetUnix, int voiceLimit,
|
||||
boolean canExtendVoiceLimit, boolean canUseInstantVoiceCloning, List<AvailableModel> availableModels,
|
||||
String status, NextInvoice nextInvoice)
|
||||
boolean canExtendVoiceLimit, boolean canUseInstantVoiceCloning, List<AvailableModel> availableModels,
|
||||
AccountStatus status, NextInvoice nextInvoice)
|
||||
```
|
||||
```java
|
||||
AvailableModel(String modelId, String displayName, List<SupportedLanguage> supportedLanguages)
|
||||
@@ -324,7 +324,7 @@ SupportedLanguage(String isoCode, String displayName)
|
||||
NextInvoice(int amountDueCents, long nextPaymentAttemptUnix)
|
||||
```
|
||||
```java
|
||||
public enum Status {
|
||||
public enum AccountStatus {
|
||||
TRIALING,
|
||||
ACTIVE,
|
||||
INCOMPLETE,
|
||||
|
||||
8
pom.xml
8
pom.xml
@@ -24,6 +24,14 @@
|
||||
<tag>HEAD</tag>
|
||||
</scm>
|
||||
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
<id>github</id>
|
||||
<name>GitHub AndrewCPU Apache Maven Packages</name>
|
||||
<url>https://maven.pkg.github.com/AndrewCPU/elevenlabs-api</url>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
|
||||
<groupId>net.andrewcpu</groupId>
|
||||
<artifactId>elevenlabs-api</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
@@ -1,48 +1,24 @@
|
||||
package net.andrewcpu.elevenlabs;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.ElevenLabsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.ElevenLabsResponse;
|
||||
import net.andrewcpu.elevenlabs.api.multipart.MultipartFile;
|
||||
import net.andrewcpu.elevenlabs.api.multipart.MultipartFormContent;
|
||||
import net.andrewcpu.elevenlabs.api.requests.history.DeleteHistoryItemRequest;
|
||||
import net.andrewcpu.elevenlabs.api.requests.history.DownloadHistoryRequest;
|
||||
import net.andrewcpu.elevenlabs.api.requests.history.GetHistoryAudioRequest;
|
||||
import net.andrewcpu.elevenlabs.api.requests.history.GetHistoryRequest;
|
||||
import net.andrewcpu.elevenlabs.api.requests.samples.DeleteSampleRequest;
|
||||
import net.andrewcpu.elevenlabs.api.requests.samples.GetAudioSampleRequest;
|
||||
import net.andrewcpu.elevenlabs.api.requests.user.GetSubscriptionInfoRequest;
|
||||
import net.andrewcpu.elevenlabs.api.requests.user.GetUserRequest;
|
||||
import net.andrewcpu.elevenlabs.api.requests.voices.*;
|
||||
import net.andrewcpu.elevenlabs.api.requests.voices.settings.GetDefaultVoiceSettingsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.requests.voices.settings.GetVoiceSettingsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.requests.voices.settings.UpdateVoiceSettingsRequest;
|
||||
import net.andrewcpu.elevenlabs.elements.user.Subscription;
|
||||
import net.andrewcpu.elevenlabs.elements.user.User;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.History;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.Sample;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.Voice;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.VoiceSettings;
|
||||
import net.andrewcpu.elevenlabs.api.net.ElevenLabsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.ElevenLabsResponse;
|
||||
import net.andrewcpu.elevenlabs.enums.ContentType;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsAPINotInitiatedException;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsException;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsValidationException;
|
||||
import net.andrewcpu.elevenlabs.util.DebugLogger;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.ProtocolException;
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static net.andrewcpu.elevenlabs.util.MultipartUtil.addFilePart;
|
||||
import static net.andrewcpu.elevenlabs.util.MultipartUtil.addFormField;
|
||||
import static net.andrewcpu.elevenlabs.util.MultipartUtil.*;
|
||||
|
||||
@SuppressWarnings({"unchecked", "UnusedReturnValue"})
|
||||
public class ElevenLabsAPI {
|
||||
//this class needs help
|
||||
private static ElevenLabsAPI instance;
|
||||
private static final String baseURL = "https://api.elevenlabs.io/v1/";
|
||||
private static boolean debugMode = false;
|
||||
@@ -51,7 +27,11 @@ public class ElevenLabsAPI {
|
||||
return debugMode;
|
||||
}
|
||||
|
||||
public static void setDebugMode(boolean enabled){
|
||||
public static <T> T getRequestResult(ElevenLabsRequest<T> request) throws ElevenLabsException {
|
||||
return ElevenLabsAPI.getInstance().getResult(request);
|
||||
}
|
||||
|
||||
public static void setDebugMode(boolean enabled) {
|
||||
debugMode = enabled;
|
||||
}
|
||||
|
||||
@@ -62,8 +42,6 @@ public class ElevenLabsAPI {
|
||||
return instance;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private boolean instantiated;
|
||||
private String apiKey;
|
||||
|
||||
@@ -76,147 +54,47 @@ public class ElevenLabsAPI {
|
||||
this.apiKey = apiKey;
|
||||
}
|
||||
|
||||
public Subscription getSubscription() throws ElevenLabsException {
|
||||
return (Subscription) getResult(new GetSubscriptionInfoRequest());
|
||||
}
|
||||
|
||||
public User getUser() throws ElevenLabsException {
|
||||
return (User) getResult(new GetUserRequest());
|
||||
}
|
||||
|
||||
public File getTextToSpeech(String text, Voice voice, VoiceSettings settings, File outputFile) throws ElevenLabsException {
|
||||
return (File)getResult(new GenerateTextToSpeechRequest(voice, settings, text, outputFile));
|
||||
}
|
||||
|
||||
public List<Voice> getVoices() throws ElevenLabsException {
|
||||
return (List<Voice>) getResult(new GetVoicesRequest());
|
||||
}
|
||||
|
||||
public Voice getVoice(String voiceId, boolean withSettings) throws ElevenLabsException {
|
||||
return (Voice)getResult(new GetVoiceRequest(voiceId, withSettings));
|
||||
}
|
||||
|
||||
public Voice getVoice(String voiceId) throws ElevenLabsException {
|
||||
return getVoice(voiceId, true);
|
||||
}
|
||||
|
||||
public VoiceSettings getVoiceSettings(String voiceId) throws ElevenLabsException {
|
||||
return (VoiceSettings) getResult(new GetVoiceSettingsRequest(voiceId));
|
||||
}
|
||||
|
||||
public VoiceSettings getVoiceSettings(Voice voice) throws ElevenLabsException {
|
||||
return getVoiceSettings(voice.getVoiceId());
|
||||
}
|
||||
|
||||
public String deleteVoice(Voice voice) throws ElevenLabsException {
|
||||
return deleteVoice(voice.getVoiceId());
|
||||
}
|
||||
|
||||
public String deleteVoice(String voiceId) throws ElevenLabsException {
|
||||
return (String)getResult(new DeleteVoiceRequest(voiceId));
|
||||
}
|
||||
|
||||
public String editVoice(Voice voice, VoiceSettings voiceSettings) throws ElevenLabsException {
|
||||
return editVoice(voice.getVoiceId(), voiceSettings);
|
||||
}
|
||||
|
||||
public String editVoice(String voiceId, VoiceSettings settings) throws ElevenLabsException {
|
||||
return (String)getResult(new UpdateVoiceSettingsRequest(voiceId, settings));
|
||||
}
|
||||
|
||||
|
||||
public String deleteSample(String voiceId, String sampleId) throws ElevenLabsException {
|
||||
return (String)getResult(new DeleteSampleRequest(voiceId, sampleId));
|
||||
}
|
||||
|
||||
public String deleteSample(Voice voice, String sampleId) throws ElevenLabsException {
|
||||
return deleteSample(voice.getVoiceId(), sampleId);
|
||||
}
|
||||
public String deleteSample(String voiceId, Sample sample) throws ElevenLabsException {
|
||||
return deleteSample(voiceId, sample.getSampleId());
|
||||
}
|
||||
|
||||
public String deleteSample(Voice voice, Sample sample) throws ElevenLabsException {
|
||||
return deleteSample(voice.getVoiceId(), sample.getSampleId());
|
||||
}
|
||||
|
||||
public File getSampleAudio(String voiceId, String sampleId, File file) throws ElevenLabsException {
|
||||
return (File)getResult(new GetAudioSampleRequest(voiceId, sampleId, file));
|
||||
}
|
||||
public File getSampleAudio(Voice voice, Sample sample, File file) throws ElevenLabsException {
|
||||
return getSampleAudio(voice.getVoiceId(), sample.getSampleId(), file);
|
||||
}
|
||||
|
||||
public History getHistory() throws ElevenLabsException {
|
||||
return (History)getResult(new GetHistoryRequest());
|
||||
}
|
||||
|
||||
public File downloadHistory(List<String> historyIds, File outputFile) throws ElevenLabsException {
|
||||
return (File)getResult(new DownloadHistoryRequest(historyIds, outputFile));
|
||||
}
|
||||
|
||||
public File getHistoryItemAudio(History.HistoryItem historyItem, File outputFile) throws ElevenLabsException {
|
||||
return (File)getResult(new GetHistoryAudioRequest(historyItem.getHistoryItemId(), outputFile));
|
||||
}
|
||||
|
||||
public String deleteHistoryItem(History.HistoryItem historyItem) throws ElevenLabsException {
|
||||
return (String)getResult(new DeleteHistoryItemRequest(historyItem.getHistoryItemId()));
|
||||
}
|
||||
|
||||
public VoiceSettings getDefaultVoiceSettings() throws ElevenLabsException {
|
||||
return (VoiceSettings)getResult(new GetDefaultVoiceSettingsRequest());
|
||||
}
|
||||
|
||||
public String createVoice(String name, Map<String, String> labels, List<File> files) throws ElevenLabsException {
|
||||
CreateVoiceRequest request = new CreateVoiceRequest(name, files, labels);
|
||||
return (String)(getResult(request));
|
||||
}
|
||||
|
||||
@SuppressWarnings("UnusedReturnValue")
|
||||
public String editVoice(String voiceId, String name, Map<String, String> labels, List<File> files) throws ElevenLabsException {
|
||||
EditVoiceRequest editVoiceRequest = new EditVoiceRequest(voiceId,name,files,labels);
|
||||
return (String)(getResult(editVoiceRequest));
|
||||
}
|
||||
|
||||
|
||||
private void checkOrThrow(ElevenLabsResponse<?> response) throws ElevenLabsException {
|
||||
if(response == null){
|
||||
if (response == null) {
|
||||
throw new ElevenLabsValidationException("An error has occurred.");
|
||||
}
|
||||
if(!response.isSuccessful()){
|
||||
if (!response.isSuccessful()) {
|
||||
throw response.getException();
|
||||
}
|
||||
}
|
||||
|
||||
private Object getResult(ElevenLabsRequest<?> request) throws ElevenLabsException {
|
||||
ElevenLabsResponse<?> response = sendRequest(request);
|
||||
public <T> T getResult(ElevenLabsRequest<T> request) throws ElevenLabsException {
|
||||
ElevenLabsResponse<T> response = sendRequest(request);
|
||||
checkOrThrow(response);
|
||||
return response.getResult();
|
||||
}
|
||||
|
||||
private ElevenLabsResponse<?> sendRequest(ElevenLabsRequest<?> request) throws ElevenLabsAPINotInitiatedException {
|
||||
if(!instantiated){
|
||||
private <T> ElevenLabsResponse<T> sendRequest(ElevenLabsRequest<T> request) throws ElevenLabsException {
|
||||
if (!instantiated) {
|
||||
throw new ElevenLabsAPINotInitiatedException();
|
||||
}
|
||||
String formattedEndpoint = request.getFormattedEndpoint();
|
||||
String boundary = "---------------------------" + System.currentTimeMillis();
|
||||
|
||||
URL url = null;
|
||||
int responseCode = 999;
|
||||
InputStream successStream = null,
|
||||
errorStream = null;
|
||||
String formattedEndpoint = request.getFormattedEndpoint();
|
||||
|
||||
URL url;
|
||||
int responseCode;
|
||||
InputStream successStream = null, errorStream = null;
|
||||
|
||||
try {
|
||||
String boundary = "---------------------------" + System.currentTimeMillis();
|
||||
DebugLogger.log(ElevenLabsAPI.class,"Request to " + baseURL + ", " + formattedEndpoint);
|
||||
url = new URL(baseURL + formattedEndpoint);
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
setupConnection(request, boundary, connection);
|
||||
|
||||
if(request.getContentType() == ContentType.JSON){
|
||||
if (request.getContentType() == ContentType.JSON) {
|
||||
handleJSON(request, connection);
|
||||
}
|
||||
else if(request.getContentType() == ContentType.MULTIPART){
|
||||
} else if (request.getContentType() == ContentType.MULTIPART) {
|
||||
handleMultipart(request, connection, boundary);
|
||||
connection.getOutputStream().flush();
|
||||
connection.getOutputStream().close();
|
||||
}
|
||||
|
||||
responseCode = connection.getResponseCode();
|
||||
if (responseCode >= 200 && responseCode < 300) {
|
||||
successStream = connection.getInputStream();
|
||||
@@ -224,7 +102,7 @@ public class ElevenLabsAPI {
|
||||
errorStream = connection.getErrorStream();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
throw new ElevenLabsException(e);
|
||||
}
|
||||
|
||||
return new ElevenLabsResponse<>(responseCode, errorStream, successStream, request);
|
||||
@@ -233,9 +111,10 @@ public class ElevenLabsAPI {
|
||||
private void setupConnection(ElevenLabsRequest<?> request, String boundary, HttpURLConnection connection) throws ProtocolException {
|
||||
connection.setConnectTimeout(60000);
|
||||
connection.setReadTimeout(60000);
|
||||
System.out.println(request.getMethod().name());
|
||||
connection.setRequestMethod(request.getMethod().name());
|
||||
String contType = request.getContentType().getType();
|
||||
if(request.getContentType() == ContentType.MULTIPART){
|
||||
if (request.getContentType() == ContentType.MULTIPART) {
|
||||
contType += "; boundary=" + boundary;
|
||||
}
|
||||
connection.setRequestProperty("xi-api-key", apiKey);
|
||||
@@ -250,17 +129,8 @@ public class ElevenLabsAPI {
|
||||
}
|
||||
|
||||
private static void handleMultipart(ElevenLabsRequest<?> request, HttpURLConnection connection, String boundary) throws IOException {
|
||||
for(MultipartFormContent item : request.getMultipartForm().getItems()){
|
||||
if(item instanceof MultipartFile multipartFile){
|
||||
addFilePart(multipartFile.getName(),multipartFile.getFilename(), multipartFile.getFile(), boundary, connection);
|
||||
}
|
||||
else{
|
||||
addFormField(item.getName(), item.getValue(), boundary, connection);
|
||||
}
|
||||
}
|
||||
writeFormValues(request, connection, boundary);
|
||||
String footer = "--" + boundary + "--\r\n";
|
||||
connection.getOutputStream().write(footer.getBytes(StandardCharsets.UTF_8));
|
||||
connection.getOutputStream().flush();
|
||||
connection.getOutputStream().close();
|
||||
}
|
||||
}
|
||||
|
||||
31
src/main/java/net/andrewcpu/elevenlabs/api/HistoryAPI.java
Normal file
31
src/main/java/net/andrewcpu/elevenlabs/api/HistoryAPI.java
Normal file
@@ -0,0 +1,31 @@
|
||||
package net.andrewcpu.elevenlabs.api;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.history.DeleteHistoryItemRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.history.DownloadHistoryRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.history.GetHistoryAudioRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.history.GetHistoryRequest;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.History;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsException;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
import static net.andrewcpu.elevenlabs.ElevenLabsAPI.getRequestResult;
|
||||
|
||||
public class HistoryAPI {
|
||||
public static History getHistory() throws ElevenLabsException {
|
||||
return getRequestResult(new GetHistoryRequest());
|
||||
}
|
||||
|
||||
public static File downloadHistory(List<String> historyIds, File outputFile) throws ElevenLabsException {
|
||||
return getRequestResult(new DownloadHistoryRequest(historyIds, outputFile));
|
||||
}
|
||||
|
||||
public static File getHistoryItemAudio(History.HistoryItem historyItem, File outputFile) throws ElevenLabsException {
|
||||
return getRequestResult(new GetHistoryAudioRequest(historyItem.getHistoryItemId(), outputFile));
|
||||
}
|
||||
|
||||
public static String deleteHistoryItem(History.HistoryItem historyItem) throws ElevenLabsException {
|
||||
return getRequestResult(new DeleteHistoryItemRequest(historyItem.getHistoryItemId()));
|
||||
}
|
||||
}
|
||||
36
src/main/java/net/andrewcpu/elevenlabs/api/SampleAPI.java
Normal file
36
src/main/java/net/andrewcpu/elevenlabs/api/SampleAPI.java
Normal file
@@ -0,0 +1,36 @@
|
||||
package net.andrewcpu.elevenlabs.api;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.samples.DeleteSampleRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.samples.GetAudioSampleRequest;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.Sample;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.Voice;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsException;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import static net.andrewcpu.elevenlabs.ElevenLabsAPI.getRequestResult;
|
||||
|
||||
public class SampleAPI {
|
||||
public static JSONObject deleteSample(String voiceId, String sampleId) throws ElevenLabsException {
|
||||
return getRequestResult(new DeleteSampleRequest(voiceId, sampleId));
|
||||
}
|
||||
|
||||
public static JSONObject deleteSample(Voice voice, String sampleId) throws ElevenLabsException {
|
||||
return deleteSample(voice.getVoiceId(), sampleId);
|
||||
}
|
||||
public static JSONObject deleteSample(String voiceId, Sample sample) throws ElevenLabsException {
|
||||
return deleteSample(voiceId, sample.getSampleId());
|
||||
}
|
||||
|
||||
public static JSONObject deleteSample(Voice voice, Sample sample) throws ElevenLabsException {
|
||||
return deleteSample(voice.getVoiceId(), sample.getSampleId());
|
||||
}
|
||||
|
||||
public static File getSampleAudio(String voiceId, String sampleId, File file) throws ElevenLabsException {
|
||||
return getRequestResult(new GetAudioSampleRequest(voiceId, sampleId, file));
|
||||
}
|
||||
public static File getSampleAudio(Voice voice, Sample sample, File file) throws ElevenLabsException {
|
||||
return getSampleAudio(voice.getVoiceId(), sample.getSampleId(), file);
|
||||
}
|
||||
}
|
||||
20
src/main/java/net/andrewcpu/elevenlabs/api/UserAPI.java
Normal file
20
src/main/java/net/andrewcpu/elevenlabs/api/UserAPI.java
Normal file
@@ -0,0 +1,20 @@
|
||||
package net.andrewcpu.elevenlabs.api;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.user.GetSubscriptionInfoRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.user.GetUserRequest;
|
||||
import net.andrewcpu.elevenlabs.elements.user.Subscription;
|
||||
import net.andrewcpu.elevenlabs.elements.user.User;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsException;
|
||||
|
||||
import static net.andrewcpu.elevenlabs.ElevenLabsAPI.getRequestResult;
|
||||
|
||||
public class UserAPI {
|
||||
public static Subscription getSubscription() throws ElevenLabsException {
|
||||
return getRequestResult(new GetSubscriptionInfoRequest());
|
||||
}
|
||||
|
||||
public static User getUser() throws ElevenLabsException {
|
||||
return getRequestResult(new GetUserRequest());
|
||||
}
|
||||
|
||||
}
|
||||
78
src/main/java/net/andrewcpu/elevenlabs/api/VoiceAPI.java
Normal file
78
src/main/java/net/andrewcpu/elevenlabs/api/VoiceAPI.java
Normal file
@@ -0,0 +1,78 @@
|
||||
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.elements.voice.Voice;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.VoiceSettings;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsException;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static net.andrewcpu.elevenlabs.ElevenLabsAPI.getRequestResult;
|
||||
|
||||
public class VoiceAPI {
|
||||
public static VoiceSettings getDefaultVoiceSettings() throws ElevenLabsException {
|
||||
return getRequestResult(new GetDefaultVoiceSettingsRequest());
|
||||
}
|
||||
|
||||
public static File getTextToSpeech(String text, Voice voice, VoiceSettings settings, File outputFile) throws ElevenLabsException {
|
||||
return getRequestResult(new GenerateTextToSpeechRequest(voice, settings, text, outputFile));
|
||||
}
|
||||
|
||||
public static List<Voice> getVoices() throws ElevenLabsException {
|
||||
return getRequestResult(new GetVoicesRequest());
|
||||
}
|
||||
|
||||
public static Voice getVoice(String voiceId, boolean withSettings) throws ElevenLabsException {
|
||||
return getRequestResult(new GetVoiceRequest(voiceId, withSettings));
|
||||
}
|
||||
|
||||
public static Voice getVoice(String voiceId) throws ElevenLabsException {
|
||||
return getVoice(voiceId, true);
|
||||
}
|
||||
|
||||
public static VoiceSettings getVoiceSettings(String voiceId) throws ElevenLabsException {
|
||||
return getRequestResult(new GetVoiceSettingsRequest(voiceId));
|
||||
}
|
||||
|
||||
public static VoiceSettings getVoiceSettings(Voice voice) throws ElevenLabsException {
|
||||
return getVoiceSettings(voice.getVoiceId());
|
||||
}
|
||||
|
||||
public static boolean deleteVoice(Voice voice) throws ElevenLabsException {
|
||||
return deleteVoice(voice.getVoiceId());
|
||||
}
|
||||
|
||||
public static boolean deleteVoice(String voiceId) throws ElevenLabsException {
|
||||
JSONObject result = getRequestResult(new DeleteVoiceRequest(voiceId));
|
||||
if(result.containsKey("status") && result.get("status").equals("ok")){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static JSONObject editVoice(Voice voice, VoiceSettings voiceSettings) throws ElevenLabsException {
|
||||
return editVoice(voice.getVoiceId(), voiceSettings);
|
||||
}
|
||||
|
||||
public static JSONObject editVoice(String voiceId, VoiceSettings settings) throws ElevenLabsException {
|
||||
return getRequestResult(new UpdateVoiceSettingsRequest(voiceId, settings));
|
||||
}
|
||||
|
||||
public static String createVoice(String name, Map<String, String> labels, List<File> files) throws ElevenLabsException {
|
||||
CreateVoiceRequest request = new CreateVoiceRequest(name, files, labels);
|
||||
return getRequestResult(request);
|
||||
}
|
||||
|
||||
public static JSONObject editVoice(String voiceId, String name, Map<String, String> labels, List<File> files) throws ElevenLabsException {
|
||||
EditVoiceRequest editVoiceRequest = new EditVoiceRequest(voiceId, name, files, labels);
|
||||
return getRequestResult(editVoiceRequest);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api;
|
||||
package net.andrewcpu.elevenlabs.api.net;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.multipart.MultipartForm;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.ResultTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.multipart.MultipartForm;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.ResultTransformer;
|
||||
import net.andrewcpu.elevenlabs.enums.ContentType;
|
||||
import net.andrewcpu.elevenlabs.enums.HTTPMethod;
|
||||
import net.andrewcpu.elevenlabs.enums.ResponseType;
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.andrewcpu.elevenlabs.api;
|
||||
package net.andrewcpu.elevenlabs.api.net;
|
||||
|
||||
import net.andrewcpu.elevenlabs.enums.ResponseType;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsExceptionBuilder;
|
||||
@@ -15,12 +15,12 @@ import java.io.OutputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
public class ElevenLabsResponse<T> {
|
||||
private final int responseCode;
|
||||
private final InputStream errorStream;
|
||||
private final InputStream successStream;
|
||||
private final ElevenLabsRequest<T> request;
|
||||
private JSONObject successful;
|
||||
private JSONObject error;
|
||||
private final InputStream successStream;
|
||||
private JSONObject successful;
|
||||
private final ElevenLabsRequest<T> request;
|
||||
private final int responseCode;
|
||||
private T resultingObject;
|
||||
|
||||
public ElevenLabsResponse(int responseCode, InputStream errorStream, InputStream successStream, ElevenLabsRequest<T> request) {
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.andrewcpu.elevenlabs.api.multipart;
|
||||
package net.andrewcpu.elevenlabs.api.net.multipart;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.andrewcpu.elevenlabs.api.multipart;
|
||||
package net.andrewcpu.elevenlabs.api.net.multipart;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.andrewcpu.elevenlabs.api.multipart;
|
||||
package net.andrewcpu.elevenlabs.api.net.multipart;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.ElevenLabsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.ResultTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.ElevenLabsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.ResultTransformer;
|
||||
import net.andrewcpu.elevenlabs.enums.HTTPMethod;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.ElevenLabsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.ResultTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.ElevenLabsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.ResultTransformer;
|
||||
import net.andrewcpu.elevenlabs.enums.HTTPMethod;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.ElevenLabsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.ResultTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.ElevenLabsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.ResultTransformer;
|
||||
import net.andrewcpu.elevenlabs.enums.HTTPMethod;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.history;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.history;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.requests.ElevenLabsDeleteRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsDeleteRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.enums.ResponseType;
|
||||
|
||||
import java.util.List;
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.history;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.history;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.requests.ElevenLabsPostRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.FilePingPongTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsPostRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.FilePingPongTransformer;
|
||||
import net.andrewcpu.elevenlabs.enums.ResponseType;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.history;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.history;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.FilePingPongTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.FilePingPongTransformer;
|
||||
import net.andrewcpu.elevenlabs.enums.ResponseType;
|
||||
|
||||
import java.io.File;
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.history;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.history;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.History;
|
||||
|
||||
public class GetHistoryRequest extends ElevenLabsGetRequest<History> {
|
||||
@@ -0,0 +1,20 @@
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.samples;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsDeleteRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.enums.ResponseType;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class DeleteSampleRequest extends ElevenLabsDeleteRequest<JSONObject> {
|
||||
public DeleteSampleRequest(String voiceId, String sampleId) {
|
||||
super(List.of(voiceId, sampleId), RequestTransformer.IN_OUT_TRANSFORMER);
|
||||
responseType = (ResponseType.JSON);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEndpoint() {
|
||||
return "voices/{voiceId}/samples/{sampleId}";
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.samples;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.samples;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.FilePingPongTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.FilePingPongTransformer;
|
||||
import net.andrewcpu.elevenlabs.enums.ResponseType;
|
||||
|
||||
import java.io.File;
|
||||
@@ -10,8 +10,8 @@ import java.util.List;
|
||||
public class GetAudioSampleRequest extends ElevenLabsGetRequest<File> {
|
||||
public GetAudioSampleRequest(String voiceId, String sampleId, File outputFile) {
|
||||
super(List.of(voiceId, sampleId), new FilePingPongTransformer(outputFile));
|
||||
responseType = (ResponseType.FILE_STREAM);
|
||||
outputFilePath = (outputFile);
|
||||
responseType = ResponseType.FILE_STREAM;
|
||||
outputFilePath = outputFile;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.user;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.user;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.elements.user.Subscription;
|
||||
|
||||
public class GetSubscriptionInfoRequest extends ElevenLabsGetRequest<Subscription> {
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.user;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.user;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.elements.user.User;
|
||||
|
||||
public class GetUserRequest extends ElevenLabsGetRequest<User> {
|
||||
@@ -1,12 +1,10 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.voices;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.voices;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.multipart.MultipartFile;
|
||||
import net.andrewcpu.elevenlabs.api.multipart.MultipartForm;
|
||||
import net.andrewcpu.elevenlabs.api.multipart.MultipartFormContent;
|
||||
import net.andrewcpu.elevenlabs.api.requests.ElevenLabsPostRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.ResultTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.ResultTransformerAdapter;
|
||||
import net.andrewcpu.elevenlabs.api.net.multipart.MultipartFile;
|
||||
import net.andrewcpu.elevenlabs.api.net.multipart.MultipartForm;
|
||||
import net.andrewcpu.elevenlabs.api.net.multipart.MultipartFormContent;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsPostRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.enums.ContentType;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -20,10 +18,8 @@ import java.util.Map;
|
||||
public class CreateVoiceRequest extends ElevenLabsPostRequest<String> {
|
||||
public CreateVoiceRequest(String name, List<File> files, Map<String, String> labels) {
|
||||
super(RequestTransformer.VOICE_ID_TRANSFORMER);
|
||||
buildBody(name, files, labels);
|
||||
}
|
||||
public CreateVoiceRequest(List<String> parameters, String name, List<File> files, Map<String, String> labels) {
|
||||
super(parameters, RequestTransformer.VOICE_ID_TRANSFORMER);
|
||||
this.contentType = ContentType.MULTIPART;
|
||||
this.multipartForm = new MultipartForm();
|
||||
buildBody(name, files, labels);
|
||||
}
|
||||
|
||||
@@ -32,24 +28,16 @@ public class CreateVoiceRequest extends ElevenLabsPostRequest<String> {
|
||||
return "voices/add";
|
||||
}
|
||||
|
||||
private void buildBody(String name, List<File> files, Map<String, String> labels){
|
||||
this.contentType = ContentType.MULTIPART;
|
||||
this.multipartForm = new MultipartForm();
|
||||
|
||||
private void buildBody(String name, List<File> files, Map<String, String> labels) {
|
||||
JSONObject val = new JSONObject();
|
||||
if(labels != null && labels.size() != 0){
|
||||
for(String key : labels.keySet()){
|
||||
val.put(key, labels.get(key));
|
||||
}
|
||||
if (labels != null && labels.size() != 0) {
|
||||
labels.keySet().forEach(key -> val.put(key, labels.get(key)));
|
||||
}
|
||||
|
||||
MultipartFormContent nameMultipart = new MultipartFormContent("name", URLEncoder.encode(name, StandardCharsets.UTF_8));
|
||||
MultipartFormContent labelsMultipart = new MultipartFormContent("labels", val.toJSONString());
|
||||
this.multipartForm.push(nameMultipart, labelsMultipart);
|
||||
|
||||
for(File file : files){
|
||||
this.multipartForm.push(new MultipartFile("files", file));
|
||||
}
|
||||
this.multipartForm.push(files.stream()
|
||||
.map(file -> new MultipartFile("files", file))
|
||||
.toArray(MultipartFile[]::new));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.voices;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsDeleteRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.RequestTransformer;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class DeleteVoiceRequest extends ElevenLabsDeleteRequest<JSONObject> {
|
||||
public DeleteVoiceRequest(String voiceId) {
|
||||
super(List.of(voiceId), RequestTransformer.IN_OUT_TRANSFORMER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEndpoint() {
|
||||
return "voices/{voiceId}";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.voices;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.net.multipart.MultipartFile;
|
||||
import net.andrewcpu.elevenlabs.api.net.multipart.MultipartForm;
|
||||
import net.andrewcpu.elevenlabs.api.net.multipart.MultipartFormContent;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsPostRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.enums.ContentType;
|
||||
import net.andrewcpu.elevenlabs.enums.ResponseType;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class EditVoiceRequest extends ElevenLabsPostRequest<JSONObject> {
|
||||
public EditVoiceRequest(String voiceId, String name, List<File> files, Map<String, String> labels) {
|
||||
super(List.of(voiceId), RequestTransformer.IN_OUT_TRANSFORMER);
|
||||
this.contentType = ContentType.MULTIPART;
|
||||
this.multipartForm = new MultipartForm();
|
||||
buildBody(name, files, labels);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getEndpoint() {
|
||||
return "voices/{voiceId}/edit";
|
||||
}
|
||||
|
||||
private void buildBody(String name, List<File> files, Map<String, String> labels) {
|
||||
JSONObject val = new JSONObject();
|
||||
if (labels != null && labels.size() != 0) {
|
||||
labels.keySet().forEach(key -> val.put(key, labels.get(key)));
|
||||
}
|
||||
MultipartFormContent nameMultipart = new MultipartFormContent("name", URLEncoder.encode(name, StandardCharsets.UTF_8));
|
||||
MultipartFormContent labelsMultipart = new MultipartFormContent("labels", val.toJSONString());
|
||||
this.multipartForm.push(nameMultipart, labelsMultipart);
|
||||
this.multipartForm.push(files.stream()
|
||||
.map(file -> new MultipartFile("files", file))
|
||||
.toArray(MultipartFile[]::new));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.voices;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.voices;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.ElevenLabsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.FilePingPongTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.ElevenLabsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.FilePingPongTransformer;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.Voice;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.VoiceSettings;
|
||||
import net.andrewcpu.elevenlabs.enums.HTTPMethod;
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.voices;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.voices;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.Voice;
|
||||
|
||||
import java.util.List;
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.voices;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.voices;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.Voice;
|
||||
|
||||
import java.util.List;
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.voices.settings;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.voices.settings;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.VoiceSettings;
|
||||
|
||||
public class GetDefaultVoiceSettingsRequest extends ElevenLabsGetRequest<VoiceSettings> {
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.voices.settings;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.voices.settings;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsGetRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.VoiceSettings;
|
||||
|
||||
import java.util.List;
|
||||
@@ -1,15 +1,16 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.voices.settings;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.voices.settings;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.requests.ElevenLabsPostRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsPostRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.ResultTransformer;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.VoiceSettings;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class UpdateVoiceSettingsRequest extends ElevenLabsPostRequest<String> {
|
||||
public class UpdateVoiceSettingsRequest extends ElevenLabsPostRequest<JSONObject> {
|
||||
public UpdateVoiceSettingsRequest(String voiceId, VoiceSettings settings){
|
||||
super(List.of(voiceId), settings.toJSON(), RequestTransformer.STRING_RESULT_TRANSFORMER);
|
||||
|
||||
super(List.of(voiceId), settings.toJSON(), RequestTransformer.IN_OUT_TRANSFORMER);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.andrewcpu.elevenlabs.api.transformers;
|
||||
package net.andrewcpu.elevenlabs.api.net.transformers;
|
||||
|
||||
import net.andrewcpu.elevenlabs.util.DebugLogger;
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
package net.andrewcpu.elevenlabs.api.transformers;
|
||||
package net.andrewcpu.elevenlabs.api.net.transformers;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.transformers.obj.*;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.obj.*;
|
||||
import net.andrewcpu.elevenlabs.elements.user.Subscription;
|
||||
import net.andrewcpu.elevenlabs.elements.user.User;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.History;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.Voice;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.VoiceSettings;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -18,4 +19,11 @@ public class RequestTransformer {
|
||||
public static final ResultTransformer<List<Voice>> VOICE_LIST_TRANSFORMER = new VoiceListTransformer();
|
||||
public static final ResultTransformer<String> STRING_RESULT_TRANSFORMER = new StringPingPongTransformer();
|
||||
public static final ResultTransformer<String> VOICE_ID_TRANSFORMER = new VoiceIDTransformer();
|
||||
|
||||
public static final ResultTransformer<JSONObject> IN_OUT_TRANSFORMER = new ResultTransformerAdapter<JSONObject>(){
|
||||
@Override
|
||||
public JSONObject transform(JSONObject object) {
|
||||
return object;
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.andrewcpu.elevenlabs.api.transformers;
|
||||
package net.andrewcpu.elevenlabs.api.net.transformers;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.andrewcpu.elevenlabs.api.transformers;
|
||||
package net.andrewcpu.elevenlabs.api.net.transformers;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.andrewcpu.elevenlabs.api.transformers;
|
||||
package net.andrewcpu.elevenlabs.api.net.transformers;
|
||||
|
||||
import net.andrewcpu.elevenlabs.util.DebugLogger;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package net.andrewcpu.elevenlabs.api.transformers.obj;
|
||||
package net.andrewcpu.elevenlabs.api.net.transformers.obj;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.transformers.ResultTransformerAdapter;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.ResultTransformerAdapter;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.History;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package net.andrewcpu.elevenlabs.api.transformers.obj;
|
||||
package net.andrewcpu.elevenlabs.api.net.transformers.obj;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.transformers.ResultTransformerAdapter;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.ResultTransformerAdapter;
|
||||
import net.andrewcpu.elevenlabs.elements.user.Subscription;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package net.andrewcpu.elevenlabs.api.transformers.obj;
|
||||
package net.andrewcpu.elevenlabs.api.net.transformers.obj;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.transformers.ResultTransformerAdapter;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.ResultTransformerAdapter;
|
||||
import net.andrewcpu.elevenlabs.elements.user.User;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
package net.andrewcpu.elevenlabs.api.transformers.obj;
|
||||
package net.andrewcpu.elevenlabs.api.net.transformers.obj;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.transformers.ResultTransformerAdapter;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.ResultTransformerAdapter;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class VoiceIDTransformer extends ResultTransformerAdapter<String> {
|
||||
|
||||
@Override
|
||||
public String transform(JSONObject object) {
|
||||
return object.get("voice_id").toString();
|
||||
@@ -1,6 +1,6 @@
|
||||
package net.andrewcpu.elevenlabs.api.transformers.obj;
|
||||
package net.andrewcpu.elevenlabs.api.net.transformers.obj;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.transformers.ResultTransformerAdapter;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.ResultTransformerAdapter;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.Voice;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
@@ -1,6 +1,6 @@
|
||||
package net.andrewcpu.elevenlabs.api.transformers.obj;
|
||||
package net.andrewcpu.elevenlabs.api.net.transformers.obj;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.transformers.ResultTransformerAdapter;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.ResultTransformerAdapter;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.VoiceSettings;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package net.andrewcpu.elevenlabs.api.transformers.obj;
|
||||
package net.andrewcpu.elevenlabs.api.net.transformers.obj;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.transformers.ResultTransformerAdapter;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.ResultTransformerAdapter;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.Voice;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.samples;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.requests.ElevenLabsDeleteRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.RequestTransformer;
|
||||
import net.andrewcpu.elevenlabs.enums.ResponseType;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class DeleteSampleRequest extends ElevenLabsDeleteRequest<String> {
|
||||
public DeleteSampleRequest(String voiceId, String sampleId) {
|
||||
super(List.of(voiceId, sampleId), RequestTransformer.STRING_RESULT_TRANSFORMER);
|
||||
responseType = (ResponseType.STRING);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEndpoint() {
|
||||
return "voices/{voiceId}/samples/{sampleId}";
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.voices;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.requests.ElevenLabsDeleteRequest;
|
||||
import net.andrewcpu.elevenlabs.api.transformers.RequestTransformer;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class DeleteVoiceRequest extends ElevenLabsDeleteRequest<String> {
|
||||
public DeleteVoiceRequest(String voiceId) {
|
||||
super(List.of(voiceId), RequestTransformer.STRING_RESULT_TRANSFORMER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEndpoint() {
|
||||
return "voices/{voiceId}";
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
package net.andrewcpu.elevenlabs.api.requests.voices;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class EditVoiceRequest extends CreateVoiceRequest{
|
||||
public EditVoiceRequest(String voiceId, String name, List<File> files, Map<String, String> labels) {
|
||||
super(List.of(voiceId), name, files, labels);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEndpoint() {
|
||||
return "voices/{voiceId}/edit";
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.elements;
|
||||
|
||||
import net.andrewcpu.elevenlabs.ElevenLabsAPI;
|
||||
import net.andrewcpu.elevenlabs.api.VoiceAPI;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.Voice;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsException;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsValidationException;
|
||||
@@ -65,15 +66,15 @@ public class VoiceBuilder {
|
||||
}
|
||||
|
||||
public Voice edit() throws ElevenLabsException {
|
||||
ElevenLabsAPI.getInstance().editVoice(voiceId, name, labels, files);
|
||||
return ElevenLabsAPI.getInstance().getVoice(voiceId, true);
|
||||
VoiceAPI.editVoice(voiceId, name, labels, files);
|
||||
return VoiceAPI.getVoice(voiceId, true);
|
||||
}
|
||||
|
||||
public Voice create() throws ElevenLabsException {
|
||||
if(files.isEmpty()){
|
||||
throw new ElevenLabsValidationException("Cannot build a voice without any files.");
|
||||
}
|
||||
String voiceId = ElevenLabsAPI.getInstance().createVoice(name, labels, files);
|
||||
return ElevenLabsAPI.getInstance().getVoice(voiceId, true);
|
||||
String voiceId = VoiceAPI.createVoice(name, labels, files);
|
||||
return VoiceAPI.getVoice(voiceId, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.elements.user;
|
||||
|
||||
import net.andrewcpu.elevenlabs.ElevenLabsAPI;
|
||||
import net.andrewcpu.elevenlabs.enums.Status;
|
||||
import net.andrewcpu.elevenlabs.api.UserAPI;
|
||||
import net.andrewcpu.elevenlabs.enums.AccountStatus;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsException;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
@@ -21,7 +21,7 @@ public class Subscription {
|
||||
private final boolean canExtendVoiceLimit;
|
||||
private final boolean canUseInstantVoiceCloning;
|
||||
private final List<AvailableModel> availableModels;
|
||||
private final Status status;
|
||||
private final AccountStatus status;
|
||||
private final NextInvoice nextInvoice;
|
||||
|
||||
public static Subscription fromJSON(JSONObject object) {
|
||||
@@ -64,7 +64,7 @@ public class Subscription {
|
||||
|
||||
|
||||
public static Subscription get() throws ElevenLabsException {
|
||||
return ElevenLabsAPI.getInstance().getSubscription();
|
||||
return UserAPI.getSubscription();
|
||||
}
|
||||
|
||||
private Subscription(String tier, int characterCount, int characterLimit, boolean canExtendCharacterLimit, boolean allowedToExtendCharacterLimit,
|
||||
@@ -80,7 +80,7 @@ public class Subscription {
|
||||
this.canExtendVoiceLimit = canExtendVoiceLimit;
|
||||
this.canUseInstantVoiceCloning = canUseInstantVoiceCloning;
|
||||
this.availableModels = availableModels;
|
||||
this.status = Status.valueOf(status.toUpperCase());
|
||||
this.status = AccountStatus.valueOf(status.toUpperCase());
|
||||
this.nextInvoice = nextInvoice;
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ public class Subscription {
|
||||
return availableModels;
|
||||
}
|
||||
|
||||
public Status getStatus() {
|
||||
public AccountStatus getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
package net.andrewcpu.elevenlabs.elements.user;
|
||||
|
||||
import net.andrewcpu.elevenlabs.ElevenLabsAPI;
|
||||
import net.andrewcpu.elevenlabs.api.HistoryAPI;
|
||||
import net.andrewcpu.elevenlabs.api.UserAPI;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.History;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsException;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class User {
|
||||
private final Subscription subscription;
|
||||
private final boolean isNewUser;
|
||||
private final String apiKey;
|
||||
|
||||
public static User get() throws ElevenLabsException, IOException {
|
||||
return ElevenLabsAPI.getInstance().getUser();
|
||||
public static User get() throws ElevenLabsException {
|
||||
return UserAPI.getUser();
|
||||
}
|
||||
|
||||
public User(Subscription subscription, boolean isNewUser, String xiApiKey) {
|
||||
@@ -34,8 +35,8 @@ public class User {
|
||||
return apiKey;
|
||||
}
|
||||
|
||||
public History getHistory() throws IOException, ElevenLabsException {
|
||||
return ElevenLabsAPI.getInstance().getHistory();
|
||||
public History getHistory() throws ElevenLabsException {
|
||||
return HistoryAPI.getHistory();
|
||||
}
|
||||
public static User fromJSON(JSONObject object) {
|
||||
JSONObject subscriptionJson = (JSONObject) object.get("subscription");
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
package net.andrewcpu.elevenlabs.elements.voice;
|
||||
|
||||
import net.andrewcpu.elevenlabs.ElevenLabsAPI;
|
||||
import net.andrewcpu.elevenlabs.enums.State;
|
||||
import net.andrewcpu.elevenlabs.api.HistoryAPI;
|
||||
import net.andrewcpu.elevenlabs.api.VoiceAPI;
|
||||
import net.andrewcpu.elevenlabs.enums.GenerationState;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsException;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
@@ -37,7 +38,7 @@ public record History(List<HistoryItem> history) {
|
||||
}
|
||||
|
||||
public static History get() throws ElevenLabsException {
|
||||
return ElevenLabsAPI.getInstance().getHistory();
|
||||
return HistoryAPI.getHistory();
|
||||
}
|
||||
|
||||
|
||||
@@ -51,11 +52,11 @@ public record History(List<HistoryItem> history) {
|
||||
}
|
||||
|
||||
public File downloadHistory(String[] ids, File file) throws ElevenLabsException {
|
||||
return ElevenLabsAPI.getInstance().downloadHistory(Arrays.stream(ids).toList(), file);
|
||||
return HistoryAPI.downloadHistory(Arrays.stream(ids).toList(), file);
|
||||
}
|
||||
|
||||
public File downloadHistory(List<HistoryItem> historyItems, File file) throws ElevenLabsException {
|
||||
return ElevenLabsAPI.getInstance().downloadHistory(historyItems.stream().map(HistoryItem::getHistoryItemId).collect(Collectors.toList()), file);
|
||||
return HistoryAPI.downloadHistory(historyItems.stream().map(HistoryItem::getHistoryItemId).collect(Collectors.toList()), file);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -74,7 +75,7 @@ public record History(List<HistoryItem> history) {
|
||||
private final int characterCountChangeFrom;
|
||||
private final int characterCountChangeTo;
|
||||
private final String contentType;
|
||||
private final State state;
|
||||
private final GenerationState state;
|
||||
private Voice voice;
|
||||
private final History history;
|
||||
|
||||
@@ -87,7 +88,7 @@ public record History(List<HistoryItem> history) {
|
||||
this.characterCountChangeFrom = characterCountChangeFrom;
|
||||
this.characterCountChangeTo = characterCountChangeTo;
|
||||
this.contentType = contentType;
|
||||
this.state = State.valueOf(state.toUpperCase());
|
||||
this.state = GenerationState.valueOf(state.toUpperCase());
|
||||
this.history = history;
|
||||
this.voice = null;
|
||||
}
|
||||
@@ -95,7 +96,7 @@ public record History(List<HistoryItem> history) {
|
||||
public Voice getVoice() {
|
||||
if (voice == null) {
|
||||
try {
|
||||
voice = ElevenLabsAPI.getInstance().getVoice(voiceId);
|
||||
voice = VoiceAPI.getVoice(voiceId);
|
||||
} catch (ElevenLabsException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
@@ -139,18 +140,18 @@ public record History(List<HistoryItem> history) {
|
||||
return contentType;
|
||||
}
|
||||
|
||||
public State getState() {
|
||||
public GenerationState getState() {
|
||||
return state;
|
||||
}
|
||||
|
||||
public String delete() throws ElevenLabsException {
|
||||
String output = ElevenLabsAPI.getInstance().deleteHistoryItem(this);
|
||||
String output = HistoryAPI.deleteHistoryItem(this);
|
||||
history.history.remove(this);
|
||||
return output;
|
||||
}
|
||||
|
||||
public File downloadAudio(File outputFile) throws ElevenLabsException {
|
||||
return ElevenLabsAPI.getInstance().getHistoryItemAudio(this, outputFile);
|
||||
return HistoryAPI.getHistoryItemAudio(this, outputFile);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.elements.voice;
|
||||
|
||||
import net.andrewcpu.elevenlabs.ElevenLabsAPI;
|
||||
import net.andrewcpu.elevenlabs.api.SampleAPI;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsException;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -62,12 +63,18 @@ public class Sample {
|
||||
return hash;
|
||||
}
|
||||
|
||||
public String delete() throws ElevenLabsException {
|
||||
return ElevenLabsAPI.getInstance().deleteSample(voice,this);
|
||||
public boolean delete() throws ElevenLabsException {
|
||||
JSONObject result = SampleAPI.deleteSample(voice,this);
|
||||
if(result.containsKey("status")){
|
||||
if(result.get("status").equals("ok")){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public File downloadAudio(File outputFile) throws ElevenLabsException {
|
||||
return ElevenLabsAPI.getInstance().getSampleAudio(voice, this, outputFile);
|
||||
return SampleAPI.getSampleAudio(voice, this, outputFile);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -78,7 +85,7 @@ public class Sample {
|
||||
", mimeType='" + mimeType + '\'' +
|
||||
", sizeBytes=" + sizeBytes +
|
||||
", hash='" + hash + '\'' +
|
||||
", voice=" + voice +
|
||||
", voice=" + voice.getVoiceId() +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.elements.voice;
|
||||
|
||||
import net.andrewcpu.elevenlabs.ElevenLabsAPI;
|
||||
import net.andrewcpu.elevenlabs.api.VoiceAPI;
|
||||
import net.andrewcpu.elevenlabs.elements.VoiceBuilder;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsException;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsValidationException;
|
||||
@@ -8,7 +9,6 @@ import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -70,17 +70,17 @@ public class Voice {
|
||||
|
||||
|
||||
public static List<Voice> getVoices() throws ElevenLabsException {
|
||||
return ElevenLabsAPI.getInstance().getVoices();
|
||||
return VoiceAPI.getVoices();
|
||||
}
|
||||
|
||||
public static Voice get(String voiceId) throws ElevenLabsException {
|
||||
Voice voice = ElevenLabsAPI.getInstance().getVoice(voiceId);
|
||||
Voice voice = VoiceAPI.getVoice(voiceId);
|
||||
voice.hasSettings = true;
|
||||
return voice;
|
||||
}
|
||||
|
||||
public static Voice get(String voiceId, boolean withSettings) throws ElevenLabsException {
|
||||
Voice voice = ElevenLabsAPI.getInstance().getVoice(voiceId, withSettings);
|
||||
Voice voice = VoiceAPI.getVoice(voiceId, withSettings);
|
||||
voice.hasSettings = withSettings;
|
||||
return voice;
|
||||
}
|
||||
@@ -129,40 +129,47 @@ public class Voice {
|
||||
return voiceSettings;
|
||||
}
|
||||
|
||||
public String delete() throws IOException, ElevenLabsException {
|
||||
return ElevenLabsAPI.getInstance().deleteVoice(getVoiceId());
|
||||
public boolean delete() throws ElevenLabsException {
|
||||
return VoiceAPI.deleteVoice(getVoiceId());
|
||||
}
|
||||
|
||||
public void fetchSettings() throws IOException, ElevenLabsException {
|
||||
this.voiceSettings = ElevenLabsAPI.getInstance().getVoiceSettings(getVoiceId());
|
||||
public void fetchSettings() throws ElevenLabsException {
|
||||
this.voiceSettings = VoiceAPI.getVoiceSettings(getVoiceId());
|
||||
hasSettings = true;
|
||||
}
|
||||
|
||||
public VoiceBuilder builder() {
|
||||
public VoiceBuilder editor() {
|
||||
return VoiceBuilder.fromVoice(this);
|
||||
}
|
||||
|
||||
public String updateVoiceSettings(VoiceSettings settings) throws ElevenLabsException {
|
||||
String response = ElevenLabsAPI.getInstance().editVoice(this, settings);
|
||||
public void updateVoiceSettings(VoiceSettings settings) throws ElevenLabsException {
|
||||
JSONObject response = VoiceAPI.editVoice(this, settings);
|
||||
if(response != null){
|
||||
this.voiceSettings = settings;
|
||||
hasSettings = true;
|
||||
return response;
|
||||
return;
|
||||
}
|
||||
return null;
|
||||
}//todo figure out what this endpoint returns. String is not description, but docs don't have the info
|
||||
|
||||
public File generate(String text, VoiceSettings voiceSettings, File output) throws ElevenLabsException {
|
||||
return ElevenLabsAPI.getInstance().getTextToSpeech(text, this, voiceSettings,output);
|
||||
}
|
||||
|
||||
public File generate(String text, File output) throws ElevenLabsException, IOException {
|
||||
public File generate(String text, VoiceSettings voiceSettings, File output) throws ElevenLabsException {
|
||||
return VoiceAPI.getTextToSpeech(text, this, voiceSettings,output);
|
||||
}
|
||||
|
||||
public File generate(String text, File output) throws ElevenLabsException {
|
||||
if(!hasSettings){
|
||||
throw new ElevenLabsValidationException("Cannot use default voice settings for " + voiceId + " because this object does not have VoiceSettings");
|
||||
}
|
||||
return generate(text, voiceSettings, output);
|
||||
}
|
||||
|
||||
public String getLabel(String label) {
|
||||
return labels.get(label);
|
||||
}
|
||||
|
||||
public boolean hasLabel(String label){
|
||||
return labels.containsKey(label);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Voice{" +
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package net.andrewcpu.elevenlabs.elements.voice;
|
||||
|
||||
import net.andrewcpu.elevenlabs.ElevenLabsAPI;
|
||||
import net.andrewcpu.elevenlabs.api.VoiceAPI;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsException;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -10,10 +10,10 @@ public class VoiceSettings {
|
||||
private double similarityBoost;
|
||||
|
||||
public static VoiceSettings fromJSON(JSONObject object){
|
||||
return new VoiceSettings((double)object.get("stability"), (double)object.get("similarity"));
|
||||
return new VoiceSettings((double)object.get("stability"), (double)object.get("similarity_boost"));
|
||||
}
|
||||
public static VoiceSettings getDefaultVoiceSettings() throws ElevenLabsException {
|
||||
return ElevenLabsAPI.getInstance().getDefaultVoiceSettings();
|
||||
return VoiceAPI.getDefaultVoiceSettings();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package net.andrewcpu.elevenlabs.enums;
|
||||
|
||||
public enum Status {
|
||||
public enum AccountStatus {
|
||||
TRIALING,
|
||||
ACTIVE,
|
||||
INCOMPLETE,
|
||||
@@ -1,6 +1,6 @@
|
||||
package net.andrewcpu.elevenlabs.enums;
|
||||
|
||||
public enum State {
|
||||
public enum GenerationState {
|
||||
CREATED,
|
||||
DELETED,
|
||||
PROCESSING
|
||||
@@ -1,7 +1,13 @@
|
||||
package net.andrewcpu.elevenlabs.exceptions;
|
||||
|
||||
public abstract class ElevenLabsException extends Exception{
|
||||
import java.io.IOException;
|
||||
|
||||
public class ElevenLabsException extends Exception{
|
||||
public ElevenLabsException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
public ElevenLabsException(IOException ioException) {
|
||||
super(ioException);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
package net.andrewcpu.elevenlabs.util;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.net.ElevenLabsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.multipart.MultipartFile;
|
||||
import net.andrewcpu.elevenlabs.api.net.multipart.MultipartFormContent;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
@@ -33,4 +37,14 @@ public class MultipartUtil {
|
||||
|
||||
connection.getOutputStream().write("\r\n".getBytes(StandardCharsets.UTF_8));
|
||||
}
|
||||
|
||||
public static void writeFormValues(ElevenLabsRequest<?> request, HttpURLConnection connection, String boundary) throws IOException {
|
||||
for (MultipartFormContent item : request.getMultipartForm().getItems()) {
|
||||
if (item instanceof MultipartFile multipartFile) {
|
||||
addFilePart(multipartFile.getName(), multipartFile.getFilename(), multipartFile.getFile(), boundary, connection);
|
||||
} else {
|
||||
addFormField(item.getName(), item.getValue(), boundary, connection);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user