@minto-ai/text-stream-slicer
Version:
实时将 Markdown 文本流智能切分为可朗读句子。
57 lines (56 loc) • 2 kB
TypeScript
/**
* 预处理器:识别并处理流式文本片段尾部的未完成结构(Markdown 链接、数字/小数与 CSS img 标签)。
*/
declare class PreprocessText {
private pendingText;
private readonly MD_LINK_TAIL_PATTERNS;
private readonly NUMBER_TAIL_PATTERNS;
private readonly IMG_TAG_TAIL_PATTERNS;
private readonly VIDEO_TAG_TAIL_PATTERNS;
/**
* 判断片段末尾是否处在 Markdown 链接结构中(未完成或完整)。
*
* @param text 输入文本。
* @returns 是否在链接尾部。
*/
isMarkdownLinkTail(text: string): boolean;
/**
* 判断片段末尾是否是数字或小数的一部分(未完成或完整)。
*
* @param text 输入文本。
* @returns 是否命中数字尾部。
*/
isNumberTail(text: string): boolean;
/**
* 判断片段末尾是否处在 CSS img 标签结构中(未完成或完整)。
*
* @param text 输入文本。
* @returns 是否命中 img 标签尾部。
*/
isImgTagTail(text: string): boolean;
/**
* 判断片段末尾是否处在 HTML video 标签结构中(未完成或完整)。
*
* @param text 输入文本。
* @returns 是否命中 video 标签尾部。
*/
isVideoTagTail(text: string): boolean;
/**
* 合并缓存并判断是否需要继续缓存当前片段,以避免在未完成结构处切句。
*
* @param text 当前输入片段。
* @param includeRemaining 是否包含待处理的剩余文本。
* @returns 预处理结果:若触发缓存则返回空字符串与新的缓存;否则返回合并后的文本与空缓存。
*/
preprocess(text: string, includeRemaining: boolean): {
processedText: string;
nextPendingText: string;
};
}
/**
* 获取或创建预处理器单例实例。
*
* @returns 预处理器实例。
*/
export declare function createPreprocessText(): PreprocessText;
export {};