File size: 1,041 Bytes
eca9834
 
 
74fe0c7
fdd123c
eca9834
72f77dc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
eca9834
 
f46aecc
eca9834
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# app/routes/tts.py

from fastapi import APIRouter, Depends
from auth import UserCreate  # Import a model for the user response
from main import get_current_user

import onnxruntime
import numpy as np

def tts_synthesis(text, onnx_model_path):
    # Load the ONNX model
    session = onnxruntime.InferenceSession(onnx_model_path)

    # Prepare input data
    input_name = session.get_inputs()[0].name
    input_data = np.array([text], dtype=np.str).reshape(1, 1)

    # Run inference
    output_name = session.get_outputs()[0].name
    output = session.run([output_name], {input_name: input_data})

    # Extract audio data
    audio_data = output[0]

    # Return the audio data
    return audio_data
    
router = APIRouter()

@router.get("/synthesize", response_model=UserCreate)
def synthesize_text(text: str, current_user: str = Depends(get_current_user)):
    # Use the get_current_user dependency to ensure authentication
    audio_data = tts_synthesis(text, current_user)
    return {"user": current_user, "audio_data": audio_data}