xunfei-tts
Version:
借助“讯飞在线语音合成API”实现浏览器端“文本转语音
67 lines (66 loc) • 2.34 kB
TypeScript
/**
* 文本流分段器 - 用于将连续文本按语言规则智能分割成有意义的段落和片段
* 支持中文、英文混合文本处理,正确识别单词、标点符号和数字,避免小数点等特殊符号导致的错误分段
*/
declare class TextStreamSplitter {
private readonly CHINESE_CHAR_REGEX;
private readonly CHINESE_PUNCTUATION_REGEX;
private readonly CHINESE_PARAGRAPH_END_REGEX;
private readonly ENGLISH_WORD_START_REGEX;
private readonly ENGLISH_WORD_CONTINUE_REGEX;
private readonly ENGLISH_PUNCTUATION_REGEX;
private readonly ENGLISH_PARAGRAPH_END_REGEX;
private readonly SPACE_CHAR_REGEX;
private readonly MIN_PARAGRAPH_LENGTH;
private pendingTokens;
/**
* 将输入文本转换为标记流。
* @param text 原始文本内容。
* @returns 标记化后的文本标记数组。
*/
private tokenizeText;
/**
* 文本净化预处理 - 去除无效字符和格式。
* @param text 原始文本。
* @returns 净化后的文本。
*/
private sanitizeText;
/**
* 段落输出之前的整理逻辑。
* @param paragraphs 段落数组。
* @returns 整理后的段落数组。
*/
private sanitizeParagraphs;
/**
* 判断标记是否为段落结束符号。
* @param token 文本标记。
* @returns 是否为段落结束符号。
*/
private isParagraphEndToken;
/**
* 将标记数组转换回文本。
* @param tokens 文本标记数组。
* @returns 组合后的文本。
*/
private tokensToString;
/**
* 将标记流分割成多个段落。
* @param tokens 文本标记数组。
* @returns 分段后的标记数组集合。
*/
private splitToParagraphs;
/**
* 合并因小数点导致的错误分段。
* @param paragraphs 分段后的标记数组集合。
* @returns 合并后的标记数组集合。
*/
private mergeDecimalParagraphs;
/**
* 处理输入文本,返回分段后的文本数组。
* @param text 输入文本内容。
* @param includeRemaining 是否包含未完成的段落。
* @returns 分段后的文本数组。
*/
processText(text: string, includeRemaining?: boolean): string[];
}
export default TextStreamSplitter;