Carsten Høyer
commited on
Commit
·
5dfce18
1
Parent(s):
2e80e92
add print
Browse files
app.py
CHANGED
|
@@ -28,11 +28,16 @@ def greet_json():
|
|
| 28 |
return {"Hello": "World!"}
|
| 29 |
|
| 30 |
# Function to generate audio from text using ParlerTTS
|
| 31 |
-
def generate_audio(text, description="
|
|
|
|
| 32 |
input_ids = tokenizer(description, return_tensors="pt").input_ids.to(device)
|
|
|
|
| 33 |
prompt_input_ids = tokenizer(text, return_tensors="pt").input_ids.to(device)
|
|
|
|
| 34 |
generation = model.generate(input_ids=input_ids, prompt_input_ids=prompt_input_ids)
|
|
|
|
| 35 |
audio_arr = generation.cpu().numpy().squeeze()
|
|
|
|
| 36 |
return audio_arr, model.config.sampling_rate
|
| 37 |
|
| 38 |
# A POST endpoint to receive and parse an array of JSON objects
|
|
@@ -40,20 +45,23 @@ def generate_audio(text, description="Neutral voice"):
|
|
| 40 |
async def create_items(items: List[Item]):
|
| 41 |
processed_items = []
|
| 42 |
for item in items:
|
|
|
|
| 43 |
# Generate audio
|
|
|
|
| 44 |
audio_arr, sample_rate = generate_audio(item.text)
|
|
|
|
| 45 |
|
| 46 |
-
# Create in-memory bytes buffer for audio
|
| 47 |
-
audio_bytes = io.BytesIO()
|
| 48 |
-
sf.write(audio_bytes, audio_arr, sample_rate, format="WAV")
|
| 49 |
-
audio_bytes.seek(0) # Reset buffer position
|
| 50 |
|
| 51 |
processed_item = {
|
| 52 |
"text": item.text,
|
| 53 |
"name": item.name,
|
| 54 |
"section": item.section,
|
| 55 |
"processed": True,
|
| 56 |
-
"audio": StreamingResponse(audio_bytes, media_type="audio/wav")
|
| 57 |
}
|
| 58 |
processed_items.append(processed_item)
|
| 59 |
|
|
|
|
| 28 |
return {"Hello": "World!"}
|
| 29 |
|
| 30 |
# Function to generate audio from text using ParlerTTS
|
| 31 |
+
def generate_audio(text, description="Jon's voice is monotone yet slightly fast in delivery, with a very close recording that almost has no background noise."):
|
| 32 |
+
print("A")
|
| 33 |
input_ids = tokenizer(description, return_tensors="pt").input_ids.to(device)
|
| 34 |
+
print("B")
|
| 35 |
prompt_input_ids = tokenizer(text, return_tensors="pt").input_ids.to(device)
|
| 36 |
+
print("C")
|
| 37 |
generation = model.generate(input_ids=input_ids, prompt_input_ids=prompt_input_ids)
|
| 38 |
+
print("D")
|
| 39 |
audio_arr = generation.cpu().numpy().squeeze()
|
| 40 |
+
print("E")
|
| 41 |
return audio_arr, model.config.sampling_rate
|
| 42 |
|
| 43 |
# A POST endpoint to receive and parse an array of JSON objects
|
|
|
|
| 45 |
async def create_items(items: List[Item]):
|
| 46 |
processed_items = []
|
| 47 |
for item in items:
|
| 48 |
+
print(f"Processing item: {item.text}")
|
| 49 |
# Generate audio
|
| 50 |
+
print("before")
|
| 51 |
audio_arr, sample_rate = generate_audio(item.text)
|
| 52 |
+
print("after")
|
| 53 |
|
| 54 |
+
# # Create in-memory bytes buffer for audio
|
| 55 |
+
# audio_bytes = io.BytesIO()
|
| 56 |
+
# sf.write(audio_bytes, audio_arr, sample_rate, format="WAV")
|
| 57 |
+
# audio_bytes.seek(0) # Reset buffer position
|
| 58 |
|
| 59 |
processed_item = {
|
| 60 |
"text": item.text,
|
| 61 |
"name": item.name,
|
| 62 |
"section": item.section,
|
| 63 |
"processed": True,
|
| 64 |
+
# "audio": StreamingResponse(audio_bytes, media_type="audio/wav")
|
| 65 |
}
|
| 66 |
processed_items.append(processed_item)
|
| 67 |
|