如何对流式响应的AI文本生成进行语音合成
我正在尝试在一个开源的大型语言模型上制作一个文本转语音(TTS)功能,这个模型有一个本地的API,可以实时给我回答问题,但这真的很难,我在这个方面找不到任何资料。
这是我的代码:
import threading
from queue import Queue
from openai import OpenAI
import time
tts_engine = pyttsx3.init()
client = OpenAI(base_url="http://localhost:1234/v1", api_key="not-needed")
history = [
{"role": "system", "content": "Vous êtes un assistant intelligent appelé Bob. Vous fournissez toujours des réponses rapides et précises, à la fois justes et utiles et toujours en langue française."},
{"role": "user", "content": "Bonjour, présentez-vous à quelqu'un qui ouvre ce programme pour la première fois. Soyez concis."},
]
while True:
user_input = input("> ")
history.append({"role": "user", "content": user_input})
start_time = time.time() # Temps de début de la requête à l'API
completion = client.chat.completions.create(
model="local-model",
messages=history,
temperature=0.8,
stream=True,
)
new_message = {"role": "assistant", "content": ""}
for chunk in completion:
if chunk.choices[0].delta.content:
generated_text = chunk.choices[0].delta.content
print(generated_text, end="", flush=True)
new_message["content"] += generated_text
history.append(new_message)
end_time = time.time()
response_time = end_time - start_time
print("\nTemps de réponse de l'API:", response_time, "secondes")
所以我尝试了很多方法,比如用一个循环来寻找正在生成的新单词,但我觉得这不是个好方法,而且也没有效果。
有没有什么建议?
0 个回答
暂无回答