[2noise/ChatTTS]API数据返回media_type="audio/wav"--请教大佬

2024-08-19 750 views
8

大佬们,在用fastapi写接口的时候,Response返回的结果要把 chat.infer得到的wavs是变成wav格式的,即media_type="audio/wav" 参照ChatTTS_colab这个项目写了一个,文本过长的时候读到后面直接没有声音了

def streaming_generator(tts_generator:Generator, media_type:str):
            if media_type == "wav":
                yield wave_header_chunk()
                media_type = "raw"
            for chunk in tts_generator:
                yield pack_audio(BytesIO(), chunk, sr, media_type).getvalue()
        print("return")
        return StreamingResponse(streaming_generator(tts_generator, media_type), media_type=f"audio/{media_type}")

所以求教 1、fastapi写接口的时候,Response返回的结果把chat.infer得到的wavs是变成wav格式的,即media_type="audio/wav" 需要stream为true和false两种情况下, 2、如果流式返回,python获取到之后播放怎么连续呀? 急求~~~

回答

8

无法理解你想表达什么。流式代码建议服务端不要着急转换wav,直接numpy数组tobytes,发到客户端再做转换。