Skip to content

文本流分段器,用于将连续输入的文本片段按语言规则切分为可消费的段落数组。适合流式输出、语音合成前置分段、聊天消息分片等场景。

安装

bash
pnpm add @mingto/text-stream-slicer

快速开始

typescript
import TextStreamSplitter from '@mingto/text-stream-slicer'

const splitter = new TextStreamSplitter()

const result1 = splitter.processText('你好,这是第一段。这里还有')
const result2 = splitter.processText('第二段内容。', true)

console.log(result1)
console.log(result2)

也可以使用命名导出:

typescript
import { TextStreamSplitter } from '@mingto/text-stream-slicer'

const splitter = new TextStreamSplitter()

API

processText(text, includeRemaining?)

同步处理输入文本片段,返回当前可输出的段落数组。

参数类型默认值说明
textstring-本次输入的文本片段
includeRemainingbooleanfalse是否已无后续文本。传入 true 时会尽量输出剩余缓存内容
typescript
const splitter = new TextStreamSplitter()

splitter.processText('第一句。第二')
splitter.processText('句。', true)

处理流程

文本处理过程包括以下步骤:

  1. 文本去噪:移除非法字符与多余空白
  2. 文本预处理:处理流式输入尾部的歧义内容
  3. 文本替换:识别并替换特殊语义单元
  4. 段落构建:按句末标点与长度规则拆分段落
  5. 段落清洗:过滤空段与无意义段

支持的文本特征

  • 中文字符与中文标点
  • 英文单词与英文标点
  • 数字与小数点
  • 中英文混合文本
  • 流式输入中的不完整尾部文本

包主入口导出 TextStreamSplitter 类,同时提供默认导出。