如何对流式响应的AI文本生成进行语音合成

-1 投票
0 回答
22 浏览
提问于 2025-04-12 04:43

我正在尝试在一个开源的大型语言模型上制作一个文本转语音(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 个回答

暂无回答

撰写回答