kavlab
commited on
Commit
·
8b984d0
1
Parent(s):
c8ab23d
Tests added
Browse files- kuznetsov_av/api.py +6 -4
- kuznetsov_av/test_api.py +23 -0
- kuznetsov_av/text_to_speech_converter.py +4 -4
kuznetsov_av/api.py
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
| 1 |
from fastapi import FastAPI
|
| 2 |
from pydantic import BaseModel
|
| 3 |
-
|
| 4 |
-
import base64
|
| 5 |
|
| 6 |
class Request(BaseModel):
|
| 7 |
"""
|
|
@@ -21,11 +23,11 @@ class Response(BaseModel):
|
|
| 21 |
app = FastAPI()
|
| 22 |
|
| 23 |
@app.get('/')
|
| 24 |
-
async def root() ->
|
| 25 |
"""
|
| 26 |
Root method of API.
|
| 27 |
"""
|
| 28 |
-
return
|
| 29 |
|
| 30 |
@app.post('/text-to-speech/convert/')
|
| 31 |
async def text_to_speech(entity: Request) -> Response:
|
|
|
|
| 1 |
+
import base64
|
| 2 |
+
|
| 3 |
+
import kuznetsov_av.text_to_speech_converter as t2s
|
| 4 |
from fastapi import FastAPI
|
| 5 |
from pydantic import BaseModel
|
| 6 |
+
|
|
|
|
| 7 |
|
| 8 |
class Request(BaseModel):
|
| 9 |
"""
|
|
|
|
| 23 |
app = FastAPI()
|
| 24 |
|
| 25 |
@app.get('/')
|
| 26 |
+
async def root() -> dict:
|
| 27 |
"""
|
| 28 |
Root method of API.
|
| 29 |
"""
|
| 30 |
+
return {"message": "Converter method: /text-to-speech/convert/"}
|
| 31 |
|
| 32 |
@app.post('/text-to-speech/convert/')
|
| 33 |
async def text_to_speech(entity: Request) -> Response:
|
kuznetsov_av/test_api.py
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from fastapi.testclient import TestClient
|
| 2 |
+
from kuznetsov_av.api import Request, Response, app
|
| 3 |
+
|
| 4 |
+
client = TestClient(app)
|
| 5 |
+
|
| 6 |
+
def test_root():
|
| 7 |
+
response = client.get('/')
|
| 8 |
+
|
| 9 |
+
assert response.status_code == 200
|
| 10 |
+
assert response.json().get('message') is not None
|
| 11 |
+
assert response.json().get('message') == "Converter method: /text-to-speech/convert/"
|
| 12 |
+
|
| 13 |
+
def test_text_to_speech():
|
| 14 |
+
response = client.post(
|
| 15 |
+
url='/text-to-speech/convert/',
|
| 16 |
+
json=Request(text='Test').model_dump()
|
| 17 |
+
)
|
| 18 |
+
|
| 19 |
+
assert response.status_code == 200
|
| 20 |
+
assert response.json().get('audio') is not None
|
| 21 |
+
assert type(response.json().get('audio')) == str
|
| 22 |
+
assert response.json().get('sampling_rate') is not None
|
| 23 |
+
assert type(response.json().get('sampling_rate')) == int
|
kuznetsov_av/text_to_speech_converter.py
CHANGED
|
@@ -1,9 +1,9 @@
|
|
| 1 |
-
from transformers import pipeline
|
| 2 |
-
import transformers.pipelines.text_to_audio
|
| 3 |
-
from datasets import load_dataset
|
| 4 |
import datasets.arrow_dataset
|
| 5 |
-
import torch
|
| 6 |
import numpy as np
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
|
| 8 |
|
| 9 |
def load_model() -> transformers.pipelines.text_to_audio.TextToAudioPipeline:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
import datasets.arrow_dataset
|
|
|
|
| 2 |
import numpy as np
|
| 3 |
+
import torch
|
| 4 |
+
import transformers.pipelines.text_to_audio
|
| 5 |
+
from datasets import load_dataset
|
| 6 |
+
from transformers import pipeline
|
| 7 |
|
| 8 |
|
| 9 |
def load_model() -> transformers.pipelines.text_to_audio.TextToAudioPipeline:
|