佛山市网站建设_网站建设公司_ASP.NET_seo优化
2026/1/16 8:22:24 网站建设 项目流程

FST ITN-ZH部署手册:私有云环境配置

1. 简介与背景

中文逆文本标准化(Inverse Text Normalization, ITN)是语音识别后处理中的关键环节,其目标是将模型输出的口语化、非结构化中文表达转换为标准书面语和数字格式。例如,“二零零八年八月八日”应被规范化为“2008年08月08日”,“早上八点半”转为“8:30a.m.”等。

FST ITN-ZH 是基于有限状态转导器(Finite State Transducer, FST)实现的高性能中文ITN系统,具备高精度、低延迟的特点。本手册介绍的是由开发者“科哥”进行WebUI二次开发后的FST ITN-ZH 私有化部署版本,支持本地或私有云环境一键运行,适用于企业级数据安全要求较高的场景。

该系统已在实际项目中验证,广泛应用于ASR后处理、智能客服、语音转写等领域。


2. 部署环境准备

2.1 硬件要求

组件推荐配置
CPUIntel Xeon 或 AMD EPYC 系列,4核以上
内存≥ 8GB RAM
存储≥ 20GB 可用空间(含日志与临时文件)
网络支持HTTP/HTTPS访问,开放7860端口

说明:本系统为轻量级服务,无GPU依赖,可在普通虚拟机或容器环境中稳定运行。

2.2 软件依赖

  • 操作系统:CentOS 7+/Ubuntu 20.04+
  • Python 版本:Python 3.8 ~ 3.10
  • 必备工具:
  • git
  • pip
  • bash

可通过以下命令检查基础环境:

python3 --version pip3 --version

2.3 目录结构说明

部署完成后,项目根目录包含以下关键文件:

/root/fst-itn-zh/ ├── run.sh # 启动脚本 ├── app.py # WebUI主程序 ├── itn_zh.py # 核心中文ITN逻辑 ├── requirements.txt # Python依赖列表 ├── static/ # 前端静态资源 └── uploads/ # 用户上传文件暂存目录

3. 安装与启动流程

3.1 克隆项目代码

使用Git拉取已二次开发的WebUI版本:

cd /root git clone https://github.com/kege/fst-itn-zh-webui.git mv fst-itn-zh-webui fst-itn-zh

3.2 安装Python依赖

进入项目目录并安装所需库:

cd /root/fst-itn-zh pip3 install -r requirements.txt

常见依赖包括: -gradio:用于构建Web交互界面 -openfstpynini:FST核心引擎(若使用预编译包则无需手动安装) -jinja2,markupsafe:模板渲染支持

3.3 配置启动脚本

run.sh是核心启动脚本,内容如下:

#!/bin/bash cd /root/fst-itn-zh nohup python3 app.py --host 0.0.0.0 --port 7860 > itn.log 2>&1 & echo "FST ITN-ZH 已启动,日志记录于 itn.log"

赋予执行权限:

chmod +x /root/run.sh

3.4 启动服务

运行启动指令:

/bin/bash /root/run.sh

首次启动约需3~5秒加载FST模型。可通过日志确认服务是否正常:

tail -f /root/fst-itn-zh/itn.log

预期输出包含:

Running on local URL: http://0.0.0.0:7860 Started server extension in directory: ...

4. WebUI功能详解

4.1 访问地址

在浏览器中输入:

http://<服务器IP>:7860

页面加载成功后显示标题:“中文逆文本标准化 (ITN)”及开发者信息“webUI二次开发 by 科哥”。

截图示意


4.2 功能一:文本转换

使用步骤
  1. 打开页面,点击「📝 文本转换」标签页
  2. 在左侧输入框中填写待转换文本
  3. 点击「开始转换」按钮
  4. 右侧输出框实时显示标准化结果
示例演示
输入: 二零零八年八月八日早上八点半 输出: 2008年08月08日 8:30a.m.

支持多类型混合转换:

输入: 这件事发生在二零一九年九月十二日的晚上,大概八点半左右,涉及金额为一万二千元。 输出: 这件事发生在2019年09月12日的晚上,大概8:30左右,涉及金额为12000元。

4.3 功能二:批量转换

使用流程
  1. 准备一个.txt文件,每行一条原始文本
  2. 切换至「📦 批量转换」标签页
  3. 点击「上传文件」选择文件
  4. 点击「批量转换」触发处理
  5. 完成后提供下载链接,文件名带时间戳(如result_20250405_1423.txt
输入文件格式示例
二零零八年八月八日 一百二十三 早上八点半 一点二五元 二十五千克
输出结果示例
2008年08月08日 123 8:30a.m. ¥1.25 25kg

4.4 快速示例按钮

页面底部提供常用示例快捷填充按钮,提升测试效率:

按钮输入示例
[日期]二零零八年八月八日
[时间]早上八点半
[数字]一百二十三
[货币]一点二五元
[分数]五分之一
[度量]二十五千克
[数学]负二
[车牌]京A一二三四五
[长文本]二零一九年九月十二日的晚上...

点击后自动填入输入框,便于快速验证各类规则。


5. 高级设置参数解析

通过勾选选项可精细控制转换行为。

5.1 转换独立数字

  • 开启效果幸运一百幸运100
  • 关闭效果幸运一百幸运一百

适用场景:避免语义误解,如“一百个苹果”不应变为“100个苹果”仅当上下文明确为数值时才启用。

5.2 转换单个数字 (0-9)

  • 开启效果零和九0和9
  • 关闭效果零和九零和九

注意:部分口语表达中保留汉字更自然,可根据业务需求调整。

5.3 完全转换'万'

  • 开启效果六百万6000000
  • 关闭效果六百万600万

建议:金融报表类应用推荐开启;日常对话类保留“万”单位更易读。


6. 支持的标准化类型详述

6.1 日期转换

将汉字年月日转换为阿拉伯数字格式。

输入: 二零一九年九月十二日 输出: 2019年09月12日

支持年份缩写(如“二三年”→“2023年”),但建议使用完整表述以提高准确率。


6.2 时间表达归一化

区分上午/下午,并统一为12小时制英文标记。

输入: 下午三点十五分 输出: 3:15p.m.

支持“半”、“刻”等口语词:“四点一刻” → “4:15”。


6.3 数字转换

递归解析中文数词结构,支持亿、万、千、百、十层级。

输入: 一千九百八十四 输出: 1984

内部采用左递归消除算法,确保“三十五”不会误判为“三十+五”。


6.4 货币符号映射

根据币种自动添加对应符号:

输入: 一点二五元 → ¥1.25 输入: 一百美元 → $100 输入: 五十欧元 → €50

目前主要支持人民币、美元、欧元,其他币种需扩展词典。


6.5 分数与比例

识别“X分之Y”结构并转为数学分数形式:

输入: 五分之一 → 1/5 输入: 三分之二 → 2/3

可用于教育、科研文档自动化处理。


6.6 度量单位简化

结合数量与单位进行合并压缩:

输入: 三十公里 → 30km 输入: 二十五千克 → 25kg

支持长度、重量、体积等常见单位,未来可接入SI国际单位体系。


6.7 数学符号处理

处理正负号、小数点等数学表达:

输入: 负二 → -2 输入: 正五点五 → +5.5

适用于数学口述转录场景。


6.8 车牌号码标准化

专用车牌识别模块,保留汉字前缀,数字部分转为阿拉伯数字:

输入: 京A一二三四五 → 京A12345 输入: 沪B六七八九零 → 沪B67890

支持新能源车牌(如“绿牌”)、武警、军车等特殊格式扩展。


7. 实际使用技巧与最佳实践

7.1 长文本处理策略

系统支持整段文本中多个实体同时提取与转换,无需分句预处理。

推荐做法: - 输入保持原句完整性 - 不强制断句,避免破坏上下文语义 - 若出现歧义,优先通过高级设置微调


7.2 大规模数据批处理

对于超过1000条的数据集,建议:

  1. 拆分为多个小于500行的.txt文件
  2. 并发上传处理(Gradio默认支持单用户队列)
  3. 结果文件按时间戳命名归档

性能提示:单次处理1000行文本平均耗时约8~12秒(取决于句子复杂度)


7.3 结果保存与审计追踪

点击「保存到文件」可将当前输出写入服务器:

  • 文件路径:/root/fst-itn-zh/results/
  • 文件命名:output_<timestamp>.txt
  • 自动创建每日子目录(如2025-04-05/

便于后续审计、比对与导入数据库。


8. 常见问题与解决方案

8.1 Q1: 转换结果不准确?

可能原因: - 输入文本存在方言或非常规表达 - 高级设置未匹配业务需求

解决方法: - 尝试关闭“转换独立数字”等敏感开关 - 检查是否含有模糊表述(如“好几个”、“一些”) - 提交错误样例给开发者优化规则库


8.2 Q2: 是否支持方言或变体?

当前支持标准普通话下的多种表达形式:

类型支持情况
简体数字一、二、三 ✅
大写数字壹、贰、叁 ✅
口语变体幺(一)、两(二)✅
方言表达如“廿”(二十)、“卅”(三十)❌(待扩展)

建议:非通用表达建议前置清洗或定制规则。


8.3 Q3: 转换速度慢?

现象描述:首次转换响应较慢(3~5秒)

原因分析: - FST模型需加载至内存 - Gradio初始化服务线程

优化建议: - 保持服务常驻,避免频繁重启 - 生产环境可封装为Docker服务,配合Supervisor守护进程


8.4 Q4: 版权信息如何保留?

根据开源协议要求,必须保留以下声明

webUI二次开发 by 科哥 | 微信:312088415 承诺永远开源使用 但是需要保留本人版权信息!

可在前端页面底部、文档或内部系统说明中体现。


9. 操作按钮功能对照表

按钮名称功能说明
开始转换触发当前输入文本的标准化处理
清空清除输入与输出区域内容
复制结果将输出内容复制回输入框(用于连续编辑)
保存到文件将输出文本写入服务器本地文件
批量转换处理上传的.txt文件并生成结果下载包

10. 界面布局说明

主界面采用简洁卡片式设计,适配桌面与移动端浏览:

┌─────────────────────────────────────────┐ │ [紫蓝渐变] 中文逆文本标准化 (ITN) │ │ webUI二次开发 by 科哥 │ ├─────────────────────────────────────────┤ │ [📝 文本转换] [📦 批量转换] │ │ │ │ ┌───────────┐ ┌───────────┐ │ │ │ 输入框 │ → │ 输出框 │ │ │ │ │ │ │ │ │ └───────────┘ └───────────┘ │ │ │ │ [开始转换] [清空] [复制] [保存] │ ├─────────────────────────────────────────┤ │ 🎯 快速示例 │ │ [日期] [时间] [数字] [货币] ... │ └─────────────────────────────────────────┘

颜色主题为紫蓝渐变,视觉清晰,重点操作区突出。


11. 技术支持与维护

如有问题,请联系:

  • 微信: 312088415
  • 开发者: 科哥
  • 更新渠道: GitHub仓库持续同步新特性与修复补丁

欢迎反馈使用体验,共同完善中文ITN生态。


12. 许可证与使用声明

本项目基于Apache License 2.0开源发布。

重要声明

webUI二次开发 by 科哥 | 微信:312088415 承诺永远开源使用 但是需要保留本人版权信息!

允许商用、修改、分发,但不得去除原始作者标识。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询