This project uses Quarkus, the Supersonic Subatomic Java Framework.
If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ .
Just curl http://localhost/swagger
, it'll download a swagger.yaml
file.
Input as follows with HTTP header Content-Type: application/json
{
"text": <string>,
"isMale": <boolean>
}
Output will be the URL of the generated mp3 file.
Just curl
to http://localhost:80/speak/<someCode>
, it'll try to return an octet stream
if it happens to have a file corresponding to that code.
An oneliner that immediately plays the generated speech (assuming you have mpv
installed).
curl \
-H 'Content-Type: application/json'\
-X POST http://localhost/speak \
--data-raw '{"text": "Ciao", "isMale": false}' \
| xargs mpv
Run this command in the repository root
git config --local core.hooksPath suggested_hooks
There is already an application.properties
shipped in the classpath, but it can be overwritten
by creating a config/application.properties
file into the working directory in which you wish to run the application.
For more info, check this link.
You can run your application in dev mode that enables live coding using:
./mvnw compile quarkus:dev
NOTE: Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.
The application can be packaged using:
./mvnw package
It produces the quarkus-run.jar
file in the target/quarkus-app/
directory.
Be aware that it’s not an über-jar as the dependencies are copied into the target/quarkus-app/lib/
directory.
If you want to build an über-jar, execute the following command:
./mvnw package -Dquarkus.package.type=uber-jar
The application is now runnable using java -jar target/quarkus-app/quarkus-run.jar
.
In the repository root, run
./generate-replicas-local-deploy.sh
It:
- generates
replicas-local-deploy/Dockerfile
that is used to build thedocker
ized application - generates
docker-compose.yml
in order to run the load-balanced replicas undernginx
- copies
config/application.properties.example
intoconfig/application.properties
if this one is not present yet - creates
replicas-local-deploy/store-cache
directory that is used to store the shared volume of the replicas - builds the code into a nativeapp
- builds the image using the generated
Dockerfile
In order to run
the replicas:
docker-compose up --scale tts-service=5
runs the replicas in "interactive mode"docker-compose up --detach --scale tts-service=5
runs the replicas in "background mode"
In order to stop
the replicas:
docker-compose down
if running the "background mode"CTRL+C
if running the "interactive mode"
You can create a native executable using:
./mvnw package -Pnative
Or, if you don't have GraalVM installed, you can run the native executable build in a container using:
./mvnw package -Pnative -Dquarkus.native.container-build=true
You can then execute your native executable with: ./target/tts-rest-wrapper-0.0.0-SNAPSHOT-runner
If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.html.
- Kotlin (guide): Write your services in Kotlin
Easily start your RESTful Web Services