У меня есть приложение, которое использует модель TTS для генерации звука по каждому предложению, а затем передает поток вывода (wav) клиенту. Проблема в том, что в выходном файле воспроизводится только первое предложение.
Я уже пробовал удалить из заголовка все wav-файлы после первого (см. ниже). Я подозреваю, что проблема может быть связана с полем «размер файла» в заголовке, но я не могу предсказать, насколько большим будет конечный wav-файл со стороны сервера.
Это самый близкий ответ, который я нашел, но они объединяют весь выходной wav на стороне сервера перед возвратом клиенту. Я не хочу, чтобы мой клиент ждал, пока будет сгенерирован весь звук статьи.
Вот соответствующий код:
async def get_all_sources_summary_audios(lang: str):
first_sentence = True
async for sentence in get_all_sources_summary_sentences(lang):
if not sentence:
continue
# Get binary audio data for the current sentence
audio = await tts.text_to_audio(sentence, lang)
audio_data = io.BytesIO(audio)
# If it's the first sentence, yield the full WAV (header + data)
if first_sentence:
yield audio_data.read() # Yield full WAV with header
first_sentence = False
else:
# For subsequent sentences, skip the 44-byte header
audio_data.seek(44)
yield audio_data.read() # Yield only audio data frames
# ...
@app.get("/get-audio")
async def get_audio():
return StreamingResponse(get_all_sources_summary_audios(lang), media_type="audio/wav")
Подробнее здесь: https://stackoverflow.com/questions/791 ... ck-to-back
FastAPI — при последовательной потоковой передаче WAV-файлов воспроизводится только первая звуковая дорожка ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Есть ли эффективный способ назначить звуки (tick.wav, end_break.wav, end_task.wav)?
Anonymous » » в форуме Python - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Есть ли эффективный способ назначить звуки (tick.wav, end_break.wav, end_task.wav)?
Anonymous » » в форуме Python - 0 Ответы
- 39 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Есть ли эффективный способ назначить звуки (tick.wav, end_break.wav, end_task.wav)?
Anonymous » » в форуме Python - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-