get_sentence_based_splitter(
min_sentence_length: int = 20,
) -> Callable[[str], tuple[str, str]]
返回一个基于句子边界将文本分割成块的函数。
参数
min_sentence_length: 被包含在一个块中的句子的最小长度。
返回
一个基于句子边界将文本分割成块的函数。
Source code in src/agents/voice/utils.py
| def get_sentence_based_splitter(
min_sentence_length: int = 20,
) -> Callable[[str], tuple[str, str]]:
"""返回一个基于句子边界将文本分割成块的函数。
参数:
min_sentence_length: 被包含在一个块中的句子的最小长度。
返回:
一个基于句子边界将文本分割成块的函数。
"""
def sentence_based_text_splitter(text_buffer: str) -> tuple[str, str]:
"""
一个将文本分割成块的函数。如果你希望在将文本发送到 TTS 模型之前就将其分割成块,
而不是等到整个文本被处理完,这个函数会很有用。
参数:
text_buffer: 要分割的文本。
返回:
一个元组,第一个元素是要处理的文本,第二个元素是剩余的文本缓冲区。
"""
sentences = re.split(r"(?<=[.!?])\s+", text_buffer.strip())
if len(sentences) >= 1:
combined_sentences = " ".join(sentences[:-1])
if len(combined_sentences) >= min_sentence_length:
remaining_text_buffer = sentences[-1]
return combined_sentences, remaining_text_buffer
return "", text_buffer
return sentence_based_text_splitter
|