mirror of
https://github.com/Andrewcpu/elevenlabs-api.git
synced 2026-05-06 03:00:23 -04:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc360a258e | ||
|
|
9c7fffbb9a | ||
|
|
4cfd14fb95 | ||
|
|
a8630ceeb0 | ||
|
|
7593f3a3f1 | ||
|
|
5288fde44e | ||
|
|
ce86914f71 | ||
|
|
4a212c7721 | ||
|
|
f46bb6878e | ||
|
|
81cdf05152 | ||
|
|
6e5ae633a6 | ||
|
|
a6163fd67f | ||
|
|
26a4ab1fa4 | ||
|
|
72f35c14b7 | ||
|
|
90a092aa81 | ||
|
|
02d7ec0685 |
20
README.md
20
README.md
@@ -3,10 +3,9 @@
|
||||
|
||||
## Getting Started
|
||||
So you wanna make custom voices, huh? Well you've come to the right place.
|
||||
|
||||
### Note: This repo is undergoing an upgrade to v2.0
|
||||
If any of the documentation is out of place or issues occur, please submit a PR or create an issue.
|
||||
I downgraded the repo from JDK 17 to JDK 11 as well.
|
||||
This library should cover all the ElevenLabs API endpoints as of 11/15/23.
|
||||
**Update**
|
||||
It seems I jumped the gun (or happened to bump into an accidental push of the speech to speech API docs), but the original documentation that my implementation was based on has now been removed or hidden. It may reappear as is, or will require changes.
|
||||
|
||||
### Installation
|
||||
**Maven**
|
||||
@@ -16,12 +15,9 @@ To add `elevenlabs-api` to your Maven project, use:
|
||||
<dependency>
|
||||
<groupId>net.andrewcpu</groupId>
|
||||
<artifactId>elevenlabs-api</artifactId>
|
||||
<version>2.7.1</version>
|
||||
<version>2.7.7</version>
|
||||
</dependency>
|
||||
```
|
||||
The most up-to date package information can be found on the [Packages tab](https://github.com/AndrewCPU/elevenlabs-api/packages/)
|
||||
|
||||
|
||||
**JAR**
|
||||
|
||||
Compiled JARs are available via the [Releases tab](https://github.com/AndrewCPU/elevenlabs-api/releases)
|
||||
@@ -32,6 +28,9 @@ To access your ElevenLabs API key, head to the [official website](https://eleven
|
||||
To set up your ElevenLabs API key, you must register it with the ElevenLabsAPI Java API like below:
|
||||
```java
|
||||
ElevenLabs.setApiKey("YOUR_API_KEY_HERE");
|
||||
|
||||
|
||||
ElevenLabs.setDefaultModel("eleven_monolingual_v1"); // Optional, defaults to: "eleven_monolingual_v1"
|
||||
```
|
||||
*For any public repository security, you should store your API key in an environment variable, or external from your source code.*
|
||||
|
||||
@@ -420,6 +419,11 @@ If you like what you see, give it a star! :)
|
||||
|
||||
- - -
|
||||
|
||||
## Todo
|
||||
I will probably rework the 2 new builders I added when I added projects support. Their usage should be more clear, though the documentation covers their use cases I believe.
|
||||
|
||||
- - -
|
||||
|
||||
#### Unit Testing
|
||||
Unit tests have been created, these endpoints are destructive and not included in the testing:
|
||||
* deleteHistoryItem - WONT TEST
|
||||
|
||||
2
pom.xml
2
pom.xml
@@ -60,7 +60,7 @@
|
||||
|
||||
<groupId>net.andrewcpu</groupId>
|
||||
<artifactId>elevenlabs-api</artifactId>
|
||||
<version>2.7.1</version>
|
||||
<version>2.7.7-SNAPSHOT</version>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>11</maven.compiler.source>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.andrewcpu.elevenlabs;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import net.andrewcpu.elevenlabs.api.impl.*;
|
||||
|
||||
public class ElevenLabs {
|
||||
@@ -17,6 +18,15 @@ public class ElevenLabs {
|
||||
public static String getApiKey() {
|
||||
return API_KEY;
|
||||
}
|
||||
private static String defaultModel = "eleven_monolingual_v1";
|
||||
|
||||
public static String getDefaultModel() {
|
||||
return defaultModel;
|
||||
}
|
||||
|
||||
public static void setDefaultModel(String defaultModel) {
|
||||
ElevenLabs.defaultModel = defaultModel;
|
||||
}
|
||||
|
||||
public static void setApiKey(String apiKey) {
|
||||
API_KEY = apiKey;
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import net.andrewcpu.elevenlabs.ElevenLabs;
|
||||
import net.andrewcpu.elevenlabs.model.ElevenModel;
|
||||
import net.andrewcpu.elevenlabs.util.ElevenNetworkUtil;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Map;
|
||||
@@ -131,6 +132,10 @@ public class HistoryItem extends ElevenModel {
|
||||
return ElevenLabs.getHistoryAPI().getHistoryItemAudio(historyItemId);
|
||||
}
|
||||
|
||||
public String getDownloadUrl() {
|
||||
return ElevenNetworkUtil.getHistoryItemUrl(historyItemId);
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
@Override
|
||||
public String toString() {
|
||||
|
||||
@@ -167,28 +167,28 @@ public class Voice extends ElevenModel {
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeech(voiceId,text, model, outputFormat,StreamLatencyOptimization.getDefault(), settings);
|
||||
}
|
||||
public File generate(String text, VoiceSettings settings, GeneratedAudioOutputFormat outputFormat) {
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeech(voiceId, text, "eleven_monolingual_v1", outputFormat,StreamLatencyOptimization.getDefault(), settings);
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeech(voiceId, text, ElevenLabs.getDefaultModel(), outputFormat,StreamLatencyOptimization.getDefault(), settings);
|
||||
}
|
||||
public File generate(String text, VoiceSettings settings, StreamLatencyOptimization streamLatencyOptimization) {
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeech(voiceId, text, "eleven_monolingual_v1", GeneratedAudioOutputFormat.getDefault(),streamLatencyOptimization, settings);
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeech(voiceId, text, ElevenLabs.getDefaultModel(), GeneratedAudioOutputFormat.getDefault(),streamLatencyOptimization, settings);
|
||||
}
|
||||
|
||||
public File generate(String text, VoiceSettings settings, GeneratedAudioOutputFormat outputFormat, StreamLatencyOptimization streamLatencyOptimization) {
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeech(voiceId, text, "eleven_monolingual_v1", outputFormat,streamLatencyOptimization, settings);
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeech(voiceId, text, ElevenLabs.getDefaultModel(), outputFormat,streamLatencyOptimization, settings);
|
||||
}
|
||||
public File generate(String text, GeneratedAudioOutputFormat outputFormat, StreamLatencyOptimization streamLatencyOptimization) {
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeech(voiceId, text, "eleven_monolingual_v1", outputFormat,streamLatencyOptimization, settings);
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeech(voiceId, text, ElevenLabs.getDefaultModel(), outputFormat,streamLatencyOptimization, settings);
|
||||
}
|
||||
public File generate(String text, StreamLatencyOptimization streamLatencyOptimization) {
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeech(voiceId, text, "eleven_monolingual_v1", GeneratedAudioOutputFormat.getDefault(), streamLatencyOptimization, settings);
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeech(voiceId, text, ElevenLabs.getDefaultModel(), GeneratedAudioOutputFormat.getDefault(), streamLatencyOptimization, settings);
|
||||
}
|
||||
|
||||
public File generate(String text, VoiceSettings settings) {
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeech(voiceId, text, "eleven_monolingual_v1", settings);
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeech(voiceId, text, ElevenLabs.getDefaultModel(), settings);
|
||||
}
|
||||
|
||||
public File generate(String text) {
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeech(voiceId, text, "eleven_monolingual_v1", settings);
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeech(voiceId, text, ElevenLabs.getDefaultModel(), settings);
|
||||
}
|
||||
|
||||
|
||||
@@ -202,11 +202,11 @@ public class Voice extends ElevenModel {
|
||||
}
|
||||
|
||||
public InputStream generateStream(String text, VoiceSettings settings) {
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeechStreamed(voiceId, text, "eleven_monolingual_v1", settings);
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeechStreamed(voiceId, text, ElevenLabs.getDefaultModel(), settings);
|
||||
}
|
||||
|
||||
public InputStream generateStream(String text) {
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeechStreamed(voiceId, text, "eleven_monolingual_v1", settings);
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeechStreamed(voiceId, text, ElevenLabs.getDefaultModel(), settings);
|
||||
}
|
||||
|
||||
public InputStream generateStream(String text, String model, GeneratedAudioOutputFormat generatedAudioOutputFormat, StreamLatencyOptimization streamLatencyOptimization) {
|
||||
@@ -218,11 +218,11 @@ public class Voice extends ElevenModel {
|
||||
}
|
||||
|
||||
public InputStream generateStream(String text, VoiceSettings settings, GeneratedAudioOutputFormat generatedAudioOutputFormat, StreamLatencyOptimization streamLatencyOptimization) {
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeechStreamed(voiceId, text, "eleven_monolingual_v1", generatedAudioOutputFormat, streamLatencyOptimization, settings);
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeechStreamed(voiceId, text, ElevenLabs.getDefaultModel(), generatedAudioOutputFormat, streamLatencyOptimization, settings);
|
||||
}
|
||||
|
||||
public InputStream generateStream(String text, GeneratedAudioOutputFormat generatedAudioOutputFormat, StreamLatencyOptimization streamLatencyOptimization) {
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeechStreamed(voiceId, text, "eleven_monolingual_v1", generatedAudioOutputFormat, streamLatencyOptimization, settings);
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeechStreamed(voiceId, text, ElevenLabs.getDefaultModel(), generatedAudioOutputFormat, streamLatencyOptimization, settings);
|
||||
}
|
||||
|
||||
public InputStream generateStream(String text, String model, StreamLatencyOptimization streamLatencyOptimization) {
|
||||
@@ -234,11 +234,11 @@ public class Voice extends ElevenModel {
|
||||
}
|
||||
|
||||
public InputStream generateStream(String text, VoiceSettings settings, StreamLatencyOptimization streamLatencyOptimization) {
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeechStreamed(voiceId, text, "eleven_monolingual_v1", GeneratedAudioOutputFormat.getDefault(), streamLatencyOptimization, settings);
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeechStreamed(voiceId, text, ElevenLabs.getDefaultModel(), GeneratedAudioOutputFormat.getDefault(), streamLatencyOptimization, settings);
|
||||
}
|
||||
|
||||
public InputStream generateStream(String text, StreamLatencyOptimization streamLatencyOptimization) {
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeechStreamed(voiceId, text, "eleven_monolingual_v1", GeneratedAudioOutputFormat.getDefault(), streamLatencyOptimization, settings);
|
||||
return ElevenLabs.getTextToSpeechAPI().generateTextToSpeechStreamed(voiceId, text, ElevenLabs.getDefaultModel(), GeneratedAudioOutputFormat.getDefault(), streamLatencyOptimization, settings);
|
||||
}
|
||||
|
||||
public File speechToSpeech(File audioFile, StreamLatencyOptimization latencyOptimization, String modelId, VoiceSettings voiceSettings) {
|
||||
|
||||
@@ -6,4 +6,9 @@ public abstract class DeleteRequest<T> extends ElevenLabsRequest<T> {
|
||||
public DeleteRequest(String endpoint, Class<T> clazz) {
|
||||
super(HttpRequestType.DELETE, endpoint, clazz);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,8 @@ public abstract class ElevenLabsRequest<T> {
|
||||
}
|
||||
|
||||
public String getEndpoint() {
|
||||
Map<String, String> params = getQueryParameters();
|
||||
if(params.isEmpty()) return endpoint;
|
||||
return endpoint + "?" + buildQueryParameters(getQueryParameters());
|
||||
}
|
||||
|
||||
@@ -35,6 +37,4 @@ public abstract class ElevenLabsRequest<T> {
|
||||
}
|
||||
|
||||
public abstract Object getPayload();
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -6,4 +6,9 @@ public abstract class GetRequest<T> extends ElevenLabsRequest<T> {
|
||||
public GetRequest(String endpoint, Class<T> clazz) {
|
||||
super(HttpRequestType.GET, endpoint, clazz);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package net.andrewcpu.elevenlabs.requests;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public abstract class PostMultipartRequest<T> extends PostRequest<T> {
|
||||
public PostMultipartRequest(String endpoint, Class<T> clazz) {
|
||||
super(endpoint, clazz);
|
||||
}
|
||||
|
||||
|
||||
public abstract Map<String, Object> getMultipartParts(Map<String, Object> map);
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return getMultipartParts(new HashMap<>());
|
||||
}
|
||||
}
|
||||
@@ -6,4 +6,9 @@ public abstract class PostRequest<T> extends ElevenLabsRequest<T> {
|
||||
public PostRequest(String endpoint, Class<T> clazz) {
|
||||
super(HttpRequestType.POST, endpoint, clazz);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,13 @@ package net.andrewcpu.elevenlabs.requests.audionative;
|
||||
|
||||
import net.andrewcpu.elevenlabs.model.request.CreateAudioNativeProjectRequest;
|
||||
import net.andrewcpu.elevenlabs.model.response.CreateAudioEnabledProjectModelResponse;
|
||||
import net.andrewcpu.elevenlabs.requests.PostMultipartRequest;
|
||||
import net.andrewcpu.elevenlabs.requests.PostRequest;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class PostCreateAudioNativeProjectRequest extends PostRequest<CreateAudioEnabledProjectModelResponse> {
|
||||
public class PostCreateAudioNativeProjectRequest extends PostMultipartRequest<CreateAudioEnabledProjectModelResponse> {
|
||||
private final CreateAudioNativeProjectRequest request;
|
||||
public PostCreateAudioNativeProjectRequest(CreateAudioNativeProjectRequest request) {
|
||||
super("v1/audio-native", CreateAudioEnabledProjectModelResponse.class);
|
||||
@@ -15,8 +16,7 @@ public class PostCreateAudioNativeProjectRequest extends PostRequest<CreateAudio
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
Map<String, Object> payload = new HashMap<>();
|
||||
public Map<String, Object> getMultipartParts(Map<String, Object> payload) {
|
||||
payload.put("name", request.getName());
|
||||
payload.put("image", request.getImage());
|
||||
payload.put("author", request.getAuthor());
|
||||
|
||||
@@ -6,9 +6,4 @@ public class DeleteHistoryItemRequest extends DeleteRequest<String> {
|
||||
public DeleteHistoryItemRequest(String historyItemId) {
|
||||
super("v1/history/" + historyItemId, String.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,9 +8,4 @@ public class GetHistoryItemAudioRequest extends GetRequest<File> {
|
||||
public GetHistoryItemAudioRequest(String historyItemId) {
|
||||
super("v1/history/" + historyItemId + "/audio", File.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,4 @@ public class GetHistoryItemByIdRequest extends GetRequest<HistoryItem> {
|
||||
public GetHistoryItemByIdRequest(String historyId) {
|
||||
super("v1/history/" + historyId, HistoryItem.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,4 @@ public class GetHistoryRequest extends GetRequest<History> {
|
||||
public GetHistoryRequest() {
|
||||
super("v1/history", History.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,4 @@ public class GetModelsRequest extends GetRequest<GenerationTypeModel[]> {
|
||||
public GetModelsRequest() {
|
||||
super("v1/models", GenerationTypeModel[].class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,13 +3,7 @@ package net.andrewcpu.elevenlabs.requests.projects;
|
||||
import net.andrewcpu.elevenlabs.requests.DeleteRequest;
|
||||
|
||||
public class DeleteChapterByIdRequest extends DeleteRequest<String> {
|
||||
|
||||
public DeleteChapterByIdRequest(String projectId, String chapterId) {
|
||||
super("v1/projects/" + projectId + "/chapters/" + chapterId, String.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,9 +6,4 @@ public class DeleteProjectByIdRequest extends DeleteRequest<String> {
|
||||
public DeleteProjectByIdRequest(String projectId) {
|
||||
super("v1/projects/" + projectId, String.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,4 @@ public class GetChapterByIdRequest extends GetRequest<Chapter> {
|
||||
public GetChapterByIdRequest(String projectId, String chapterId) {
|
||||
super("v1/projects/" + projectId + "/chapters/" + chapterId, Chapter.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,4 @@ public class GetChapterSnapshotsRequest extends GetRequest<ChapterSnapshotsModel
|
||||
public GetChapterSnapshotsRequest(String projectId, String chapterId) {
|
||||
super("v1/projects/" + projectId + "/chapters/" + chapterId + "/snapshots", ChapterSnapshotsModelResponse.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,4 @@ public class GetProjectByIdRequest extends GetRequest<Project> {
|
||||
public GetProjectByIdRequest(String projectId) {
|
||||
super("v1/projects/" + projectId, Project.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,4 @@ public class GetProjectChaptersRequest extends GetRequest<ChaptersModelResponse>
|
||||
public GetProjectChaptersRequest(String projectId) {
|
||||
super("v1/projects/" + projectId + "/chapters", ChaptersModelResponse.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,4 @@ public class GetProjectSnapshotsRequest extends GetRequest<ProjectSnapshotsModel
|
||||
public GetProjectSnapshotsRequest(String projectId) {
|
||||
super("v1/projects/" + projectId + "/snapshots", ProjectSnapshotsModelResponse.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,4 @@ public class GetProjectsRequest extends GetRequest<ProjectsModelResponse> {
|
||||
public GetProjectsRequest() {
|
||||
super("v1/projects", ProjectsModelResponse.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,13 @@ package net.andrewcpu.elevenlabs.requests.projects;
|
||||
|
||||
import net.andrewcpu.elevenlabs.model.request.AddProjectRequest;
|
||||
import net.andrewcpu.elevenlabs.model.response.ProjectModelResponse;
|
||||
import net.andrewcpu.elevenlabs.requests.PostMultipartRequest;
|
||||
import net.andrewcpu.elevenlabs.requests.PostRequest;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class PostAddProjectRequest extends PostRequest<ProjectModelResponse> {
|
||||
public class PostAddProjectRequest extends PostMultipartRequest<ProjectModelResponse> {
|
||||
private final AddProjectRequest request;
|
||||
public PostAddProjectRequest(AddProjectRequest request) {
|
||||
super("v1/projects/add", ProjectModelResponse.class);
|
||||
@@ -15,8 +16,7 @@ public class PostAddProjectRequest extends PostRequest<ProjectModelResponse> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
Map<String, Object> payload = new HashMap<>();
|
||||
public Map<String, Object> getMultipartParts(Map<String, Object> payload) {
|
||||
payload.put("name",request.getName());
|
||||
payload.put("from_url", request.getFromUrl());
|
||||
payload.put("from_document", request.getFromDocument());
|
||||
|
||||
@@ -6,9 +6,4 @@ public class PostConvertChapterRequest extends PostRequest<String> {
|
||||
public PostConvertChapterRequest(String projectId, String chapterId) {
|
||||
super("v1/projects/" + projectId + "/chapters/" + chapterId + "/convert", String.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,9 +6,4 @@ public class PostConvertProjectRequest extends PostRequest<String> {
|
||||
public PostConvertProjectRequest(String projectId) {
|
||||
super("v1/projects/" + projectId + "/convert", String.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,9 +8,4 @@ public class PostStreamChapterSnapshotAudioRequest extends PostRequest<InputStre
|
||||
public PostStreamChapterSnapshotAudioRequest(String projectId, String chapterId, String chapterSnapshotId) {
|
||||
super("v1/projects/" + projectId + "/chapters/" + chapterId + "/snapshots/" + chapterSnapshotId + "/stream", InputStream.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,9 +8,4 @@ public class PostStreamProjectSnapshotAudioRequest extends PostRequest<InputStre
|
||||
public PostStreamProjectSnapshotAudioRequest(String projectId, String snapshotId) {
|
||||
super("v1/projects/" + projectId + "/snapshots/" + snapshotId + "/stream", InputStream.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,9 +6,4 @@ public class DeleteSampleRequest extends DeleteRequest<String> {
|
||||
public DeleteSampleRequest(String voiceId, String sampleId) {
|
||||
super("v1/voices/" + voiceId + "/samples/" + sampleId, String.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,9 +8,4 @@ public class GetSampleRequest extends GetRequest<File> {
|
||||
public GetSampleRequest(String voiceId, String sampleId) {
|
||||
super("v1/voices/" + voiceId + "/samples/" + sampleId + "/audio", File.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.requests.sts;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import net.andrewcpu.elevenlabs.enums.StreamLatencyOptimization;
|
||||
import net.andrewcpu.elevenlabs.model.voice.VoiceSettings;
|
||||
import net.andrewcpu.elevenlabs.requests.PostRequest;
|
||||
@@ -31,9 +33,15 @@ public class PostSpeechToSpeechRequest extends PostRequest<File> {
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
Map<String, Object> body = new HashMap<>();
|
||||
String voiceSettingsString;
|
||||
try {
|
||||
voiceSettingsString = new ObjectMapper().writeValueAsString(voiceSettings);
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
body.put("audio", audio);
|
||||
body.put("model_id", modelId);
|
||||
body.put("voice_settings", voiceSettings);
|
||||
body.put("voice_settings", voiceSettingsString);
|
||||
return body;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.requests.sts;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import net.andrewcpu.elevenlabs.enums.StreamLatencyOptimization;
|
||||
import net.andrewcpu.elevenlabs.model.voice.VoiceSettings;
|
||||
import net.andrewcpu.elevenlabs.requests.PostRequest;
|
||||
@@ -32,9 +34,15 @@ public class PostSpeechToSpeechStreamedRequest extends PostRequest<InputStream>
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
Map<String, Object> body = new HashMap<>();
|
||||
String voiceSettingsString;
|
||||
try {
|
||||
voiceSettingsString = new ObjectMapper().writeValueAsString(voiceSettings);
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
body.put("audio", audio);
|
||||
body.put("model_id", modelId);
|
||||
body.put("voice_settings", voiceSettings);
|
||||
body.put("voice_settings", voiceSettingsString);
|
||||
return body;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ public class PostTextToSpeechRequest extends PostRequest<File> {
|
||||
public Map<String, String> getQueryParameters() {
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("optimize_streaming_latency", String.valueOf(streamLatencyOptimization.getValue()));
|
||||
map.put("output_format", outputFormat.name());
|
||||
map.put("output_format", outputFormat.name().toLowerCase());
|
||||
return map;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ public class PostTextToSpeechStreamedRequest extends PostRequest<InputStream> {
|
||||
public Map<String, String> getQueryParameters() {
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("optimize_streaming_latency", String.valueOf(streamLatencyOptimization.getValue()));
|
||||
map.put("output_format", outputFormat.name());
|
||||
map.put("output_format", outputFormat.name().toLowerCase());
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,9 +8,4 @@ public class GetSubscriptionRequest extends GetRequest<Subscription> {
|
||||
public GetSubscriptionRequest() {
|
||||
super("v1/user/subscription", Subscription.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,4 @@ public class GetUserRequest extends GetRequest<User> {
|
||||
public GetUserRequest() {
|
||||
super("v1/user", User.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,9 +6,4 @@ public class DeleteVoiceRequest extends DeleteRequest<String> {
|
||||
public DeleteVoiceRequest(String voiceId) {
|
||||
super("v1/voices/" + voiceId, String.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,4 @@ public class GetDefaultVoiceSettingsRequest extends GetRequest<VoiceSettings> {
|
||||
public GetDefaultVoiceSettingsRequest() {
|
||||
super("v1/voices/settings/default", VoiceSettings.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,15 +12,17 @@ public class GetVoiceRequest extends GetRequest<Voice> {
|
||||
this(voiceId, true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public GetVoiceRequest(String voiceId, boolean withSettings) {
|
||||
super( "v1/voices/" + voiceId, Voice.class);
|
||||
this.withSettings = withSettings;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
Map<String, Object> payload = new HashMap<>();
|
||||
payload.put("with_settings", withSettings);
|
||||
public Map<String, String> getQueryParameters() {
|
||||
Map<String, String> payload = new HashMap<>();
|
||||
payload.put("with_settings", String.valueOf(withSettings));
|
||||
return payload;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,4 @@ public class GetVoiceSettingsRequest extends GetRequest<VoiceSettings> {
|
||||
public GetVoiceSettingsRequest(String voiceId) {
|
||||
super("v1/voices/" + voiceId + "/settings", VoiceSettings.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,4 @@ public class GetVoicesRequest extends GetRequest<VoiceModelResponse> {
|
||||
public GetVoicesRequest() {
|
||||
super("v1/voices", VoiceModelResponse.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package net.andrewcpu.elevenlabs.requests.voices;
|
||||
|
||||
import net.andrewcpu.elevenlabs.model.response.CreateVoiceResponse;
|
||||
import net.andrewcpu.elevenlabs.requests.PostMultipartRequest;
|
||||
import net.andrewcpu.elevenlabs.requests.PostRequest;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class PostAddVoiceRequest extends PostRequest<CreateVoiceResponse> {
|
||||
public class PostAddVoiceRequest extends PostMultipartRequest<CreateVoiceResponse> {
|
||||
private final String name;
|
||||
private final File[] samples;
|
||||
private final String description;
|
||||
@@ -37,8 +38,7 @@ public class PostAddVoiceRequest extends PostRequest<CreateVoiceResponse> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
Map<String, Object> map = new HashMap<String, Object>();
|
||||
public Map<String, Object> getMultipartParts(Map<String, Object> map) {
|
||||
map.put("name", this.name);
|
||||
map.put("files", this.samples);
|
||||
map.put("description", this.description);
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package net.andrewcpu.elevenlabs.requests.voices;
|
||||
|
||||
import net.andrewcpu.elevenlabs.requests.PostMultipartRequest;
|
||||
import net.andrewcpu.elevenlabs.requests.PostRequest;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class PostEditVoiceRequest extends PostRequest<String> {
|
||||
public class PostEditVoiceRequest extends PostMultipartRequest<String> {
|
||||
private final String name;
|
||||
private final File[] samples;
|
||||
private final String description;
|
||||
@@ -36,8 +37,7 @@ public class PostEditVoiceRequest extends PostRequest<String> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPayload() {
|
||||
Map<String, Object> map = new HashMap<String, Object>();
|
||||
public Map<String, Object> getMultipartParts(Map<String, Object> map) {
|
||||
map.put("name", this.name);
|
||||
map.put("files", this.samples);
|
||||
map.put("description", this.description);
|
||||
|
||||
@@ -66,22 +66,10 @@ public class ElevenNetworkUtil {
|
||||
}
|
||||
}
|
||||
|
||||
private static List<NameValuePair> getParameters(Object payload) {
|
||||
List<NameValuePair> parameters = new ArrayList<>();
|
||||
if (payload instanceof Map<?, ?>) {
|
||||
Map<?, ?> payloadMap = (Map<?, ?>) payload;
|
||||
for (Map.Entry<?, ?> entry : payloadMap.entrySet()) {
|
||||
parameters.add(new BasicNameValuePair(String.valueOf(entry.getKey()), String.valueOf(entry.getValue())));
|
||||
}
|
||||
}
|
||||
return parameters;
|
||||
}
|
||||
|
||||
private static HttpUriRequestBase handleNonBodyRequest(HttpRequestType requestType, Object payload, String path) {
|
||||
List<NameValuePair> parameters = getParameters(payload);
|
||||
private static HttpUriRequestBase handleNonBodyRequest(HttpRequestType requestType, String path) {
|
||||
HttpUriRequestBase request = getRequest(requestType, path);
|
||||
try {
|
||||
request.setUri(new URIBuilder(path).addParameters(parameters).build());
|
||||
request.setUri(new URIBuilder(path).build());
|
||||
} catch (URISyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
@@ -141,7 +129,7 @@ public class ElevenNetworkUtil {
|
||||
public static HttpUriRequestBase getRequest(HttpRequestType method, String path, Object payload) throws JsonProcessingException {
|
||||
HttpUriRequestBase request;
|
||||
if (method == HttpRequestType.GET || method == HttpRequestType.DELETE) {
|
||||
request = handleNonBodyRequest(method, payload, path);
|
||||
request = handleNonBodyRequest(method, path);
|
||||
} else {
|
||||
request = handleBodyRequest(method, payload, path);
|
||||
}
|
||||
@@ -149,6 +137,10 @@ public class ElevenNetworkUtil {
|
||||
return request;
|
||||
}
|
||||
|
||||
public static String getHistoryItemUrl(String historyItemId) {
|
||||
return BASE_URL + "v1/history/" + historyItemId + "/audio";
|
||||
}
|
||||
|
||||
public static <T> T sendRequest(HttpRequestType method, String path, Object payload, Class<T> responseType) {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
path = BASE_URL + path;
|
||||
|
||||
Reference in New Issue
Block a user