ChatTTS-Forge / modules /synthesize_stream.py
zhzluke96
update
bed01bd
import io
from typing import Generator, Union
import numpy as np
from modules import generate_audio as generate
from modules.SentenceSplitter import SentenceSplitter
from modules.speaker import Speaker
def synthesize_stream(
text: str,
temperature: float = 0.3,
top_P: float = 0.7,
top_K: float = 20,
spk: Union[int, Speaker] = -1,
infer_seed: int = -1,
use_decoder: bool = True,
prompt1: str = "",
prompt2: str = "",
prefix: str = "",
spliter_threshold: int = 100,
end_of_sentence="",
) -> Generator[tuple[int, np.ndarray], None, None]:
spliter = SentenceSplitter(spliter_threshold)
sentences = spliter.parse(text)
for sentence in sentences:
wav_gen = generate.generate_audio_stream(
text=sentence + end_of_sentence,
temperature=temperature,
top_P=top_P,
top_K=top_K,
spk=spk,
infer_seed=infer_seed,
use_decoder=use_decoder,
prompt1=prompt1,
prompt2=prompt2,
prefix=prefix,
)
for sr, wav in wav_gen:
yield sr, wav