anuj-exe commited on
Commit
a164f72
·
verified ·
1 Parent(s): 49bf0ac

Create oldApp.py

Browse files
Files changed (1) hide show
  1. oldApp.py +49 -0
oldApp.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ In this, I want to use one of these embeddings:
2
+
3
+ # app.py
4
+ from fastapi import FastAPI, Query
5
+ from fastapi.responses import StreamingResponse
6
+ from transformers import SpeechT5Processor, SpeechT5ForTextToSpeech, SpeechT5HifiGan
7
+ import torch
8
+ import io
9
+ import soundfile as sf
10
+
11
+ app = FastAPI(title="SpeechT5 TTS API")
12
+
13
+ # Load models once at startup
14
+ processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_tts")
15
+ model = SpeechT5ForTextToSpeech.from_pretrained("microsoft/speecht5_tts")
16
+ vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")
17
+
18
+ # Dummy speaker embedding (flat, neutral voice)
19
+ speaker_embeddings = torch.zeros((1, 512))
20
+
21
+
22
+ @app.get("/speak")
23
+ def speak(text: str = Query(..., description="Text to convert to speech")):
24
+ """
25
+ Convert text to speech using SpeechT5 + HiFi-GAN.
26
+ Returns a WAV audio stream.
27
+ """
28
+ # Prepare input
29
+ inputs = processor(text=text, return_tensors="pt")
30
+
31
+ # Generate speech
32
+ speech = model.generate_speech(inputs["input_ids"], speaker_embeddings, vocoder=vocoder)
33
+
34
+ # Convert to bytes buffer
35
+ buf = io.BytesIO()
36
+ sf.write(buf, speech.numpy(), samplerate=16000, format="WAV")
37
+ buf.seek(0)
38
+
39
+ return StreamingResponse(buf, media_type="audio/wav")
40
+
41
+ Embeddings:
42
+
43
+ US female 1: https://huggingface.co/datasets/Xenova/cmu-arctic-xvectors-extracted/resolve/main/cmu_us_slt_arctic-wav-arctic_a0001.bin
44
+ US female 2: https://huggingface.co/datasets/Xenova/cmu-arctic-xvectors-extracted/resolve/main/cmu_us_clb_arctic-wav-arctic_a0001.bin
45
+ US male 1: https://huggingface.co/datasets/Xenova/cmu-arctic-xvectors-extracted/resolve/main/cmu_us_bdl_arctic-wav-arctic_a0003.bin
46
+ US male 2: https://huggingface.co/datasets/Xenova/cmu-arctic-xvectors-extracted/resolve/main/cmu_us_rms_arctic-wav-arctic_a0003.bin
47
+ Canadian male: https://huggingface.co/datasets/Xenova/cmu-arctic-xvectors-extracted/resolve/main/cmu_us_jmk_arctic-wav-arctic_a0002.bin
48
+ Scottish male: https://huggingface.co/datasets/Xenova/cmu-arctic-xvectors-extracted/resolve/main/cmu_us_awb_arctic-wav-arctic_b0002.bin
49
+ Indian male: https://huggingface.co/datasets/Xenova/cmu-arctic-xvectors-extracted/resolve/main/cmu_us_ksp_arctic-wav-arctic_a0007.bin