mirror of
https://github.com/Andrewcpu/elevenlabs-api.git
synced 2026-05-06 03:00:23 -04:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b8d3ae7c90 | ||
|
|
4b740d8997 | ||
|
|
78dba6753d |
21
README.md
21
README.md
@@ -1,4 +1,4 @@
|
||||
# elevenlabs-api 
|
||||
# 🗣️🔊 elevenlabs-api 
|
||||
### An unofficial ElevenLabs AI Voice Generation Java API
|
||||
|
||||
## Getting Started
|
||||
@@ -9,24 +9,19 @@ So you wanna make custom voices, huh? Well you've come to the right place.
|
||||
|
||||
To add `elevenlabs-api` to your Maven project, use:
|
||||
```xml
|
||||
<dependencies>
|
||||
...
|
||||
<dependency>
|
||||
<groupId>net.andrewcpu.elevenlabs</groupId>
|
||||
<artifactId>elevenlabs-api</artifactId>
|
||||
<version>CURRENT_VERSION</version>
|
||||
</dependency>
|
||||
...
|
||||
</dependencies>
|
||||
<dependency>
|
||||
<groupId>net.andrewcpu.elevenlabs</groupId>
|
||||
<artifactId>elevenlabs-api</artifactId>
|
||||
<version>1.0-SNAPSHOT</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)
|
||||
|
||||
**Gradle**
|
||||
|
||||
*Todo*
|
||||
|
||||
### Setting up your API Key
|
||||
To access your ElevenLabs API key, head to the [official website](https://elevenlabs.io/), you can view your `xi-api-key` using the 'Profile' tab on the website.
|
||||
|
||||
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,10 +1,10 @@
|
||||
package net.andrewcpu.elevenlabs.api;
|
||||
|
||||
import net.andrewcpu.elevenlabs.ElevenLabsAPI;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.voices.*;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.voices.settings.GetDefaultVoiceSettingsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.voices.settings.GetVoiceSettingsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.voices.settings.UpdateVoiceSettingsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.voices.tts.GenerateTextToSpeechRequest;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.Voice;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.VoiceSettings;
|
||||
import net.andrewcpu.elevenlabs.exceptions.ElevenLabsException;
|
||||
|
||||
@@ -17,7 +17,7 @@ import java.nio.charset.StandardCharsets;
|
||||
public class ElevenLabsResponse<T> {
|
||||
private final InputStream errorStream;
|
||||
private JSONObject error;
|
||||
private final InputStream successStream;
|
||||
public final InputStream successStream;
|
||||
private JSONObject successful;
|
||||
private final ElevenLabsRequest<T> request;
|
||||
private final int responseCode;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.voices;
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.voices.tts;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.net.ElevenLabsRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsPostRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.FilePingPongTransformer;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.Voice;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.VoiceSettings;
|
||||
@@ -12,7 +13,7 @@ import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public class GenerateTextToSpeechRequest extends ElevenLabsRequest<File> {
|
||||
public class GenerateTextToSpeechRequest extends ElevenLabsPostRequest<File> {
|
||||
|
||||
private static JSONObject buildBody(VoiceSettings settings, String text){
|
||||
JSONObject object = new JSONObject();
|
||||
@@ -21,7 +22,7 @@ public class GenerateTextToSpeechRequest extends ElevenLabsRequest<File> {
|
||||
return object;
|
||||
}
|
||||
public GenerateTextToSpeechRequest(Voice voice, VoiceSettings settings, String text, File outputFile){
|
||||
super(List.of(voice.getVoiceId()), buildBody(settings, text), HTTPMethod.POST, new FilePingPongTransformer(outputFile));
|
||||
super(List.of(voice.getVoiceId()), buildBody(settings, text), new FilePingPongTransformer(outputFile));
|
||||
responseType = (ResponseType.FILE_STREAM);
|
||||
outputFilePath = (outputFile);
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package net.andrewcpu.elevenlabs.api.net.requests.voices.tts;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.net.requests.ElevenLabsPostRequest;
|
||||
import net.andrewcpu.elevenlabs.api.net.transformers.RequestInputStreamTransformer;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.Voice;
|
||||
import net.andrewcpu.elevenlabs.elements.voice.VoiceSettings;
|
||||
import net.andrewcpu.elevenlabs.enums.ResponseType;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.InputStream;
|
||||
import java.util.List;
|
||||
|
||||
public class GenerateTextToSpeechStreamRequest extends ElevenLabsPostRequest<InputStream> {
|
||||
|
||||
private static JSONObject buildBody(VoiceSettings settings, String text){
|
||||
JSONObject object = new JSONObject();
|
||||
object.put("text", text);
|
||||
object.put("voice_settings", settings.toJSON());
|
||||
return object;
|
||||
}
|
||||
public GenerateTextToSpeechStreamRequest(Voice voice, VoiceSettings settings, String text, File outputFile){
|
||||
super(List.of(voice.getVoiceId()), buildBody(settings, text), new RequestInputStreamTransformer());
|
||||
responseType = (ResponseType.FILE_STREAM);
|
||||
outputFilePath = (outputFile);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEndpoint() {
|
||||
return "text-to-speech/{voiceId}/stream";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package net.andrewcpu.elevenlabs.api.net.transformers;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.net.ElevenLabsResponse;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
public class RequestInputStreamTransformer extends ResultTransformerAdapter<InputStream> {
|
||||
|
||||
@Override
|
||||
public InputStream transform(ElevenLabsResponse<InputStream> response) {
|
||||
return response.successStream;
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
package net.andrewcpu.elevenlabs.api.net.transformers;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.net.ElevenLabsResponse;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public abstract class ResultTransformer<T> {
|
||||
public abstract T transform(JSONObject object);
|
||||
public abstract T transform(String object);
|
||||
public abstract T transform();
|
||||
public abstract T transform(ElevenLabsResponse<T> response);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.andrewcpu.elevenlabs.api.net.transformers;
|
||||
|
||||
import net.andrewcpu.elevenlabs.api.net.ElevenLabsResponse;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
public class ResultTransformerAdapter<T> extends ResultTransformer<T> {
|
||||
@@ -18,4 +19,9 @@ public class ResultTransformerAdapter<T> extends ResultTransformer<T> {
|
||||
public T transform() {
|
||||
throw new UnsupportedOperationException("transform() is not defined.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public T transform(ElevenLabsResponse<T> response) {
|
||||
throw new UnsupportedOperationException("transform(Response response) is not defined.");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user