news 2026/10/2 0:16:07

FST ITN-ZH部署指南:本地开发环境搭建教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FST ITN-ZH部署指南:本地开发环境搭建教程

FST ITN-ZH部署指南:本地开发环境搭建教程

1. 简介与学习目标

欢迎阅读FST ITN-ZH 中文逆文本标准化(ITN)系统本地开发环境搭建教程。本文旨在为开发者提供一套完整、可复现的本地部署方案,帮助您快速构建并二次开发基于 FST 的中文 ITN WebUI 系统。

本教程适用于以下场景: - 希望在本地环境中运行和调试 ITN 系统 - 计划对现有 WebUI 进行功能扩展或界面优化 - 需要在离线环境下使用中文逆文本标准化能力

通过本教程,您将掌握: - 环境依赖安装与配置 - 项目源码获取与结构解析 - WebUI 启动脚本分析与自定义 - 常见问题排查方法


2. 环境准备

2.1 系统要求

建议在以下环境中进行部署:

组件推荐配置
操作系统Ubuntu 20.04 / 22.04 LTS 或 CentOS 7+
CPU双核及以上
内存4GB RAM 起步,推荐 8GB
存储空间至少 5GB 可用空间
Python 版本3.8 - 3.10

注意:不建议在 Windows 原生系统下直接部署,推荐使用 WSL2(Windows Subsystem for Linux)模拟 Linux 环境。

2.2 安装基础依赖

# 更新包管理器 sudo apt update && sudo apt upgrade -y # 安装 Python 及相关工具 sudo apt install -y python3 python3-pip python3-venv git # 安装常用工具 sudo apt install -y build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \ libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \ libffi-dev liblzma-dev

2.3 创建虚拟环境

# 创建项目目录 mkdir fst-itn-zh && cd fst-itn-zh # 初始化 Python 虚拟环境 python3 -m venv venv source venv/bin/activate # 升级 pip pip install --upgrade pip

3. 获取与配置项目代码

3.1 克隆项目源码

目前该项目未公开托管于主流平台,根据已有信息推测其部署方式如下:

# 假设项目可通过私有仓库或本地拷贝获取 # 示例命令(请替换为实际地址) git clone <repository-url> .

若无法通过 Git 获取,请确认是否已获得run.sh和核心模块文件,并将其放置于当前目录。

3.2 目录结构说明

典型的项目结构应如下所示:

fst-itn-zh/ ├── run.sh # 启动脚本 ├── app.py # 主应用入口 ├── itn_engine/ # ITN 核心引擎 │ ├── __init__.py │ └── processor.py ├── webui/ # Web 前端组件 │ ├── static/ │ └── templates/ ├── requirements.txt # 依赖列表 └── data/ # 模型或规则数据

3.3 安装 Python 依赖

创建requirements.txt文件,内容参考如下:

Flask==2.3.3 gradio==3.50.2 openfst-python numpy

安装依赖:

pip install -r requirements.txt

4. 启动脚本解析与运行

4.1 分析启动脚本

提供的启动指令为:

/bin/bash /root/run.sh

该脚本通常包含以下逻辑:

#!/bin/bash # run.sh 示例内容(可根据实际情况调整) cd /root/fst-itn-zh source venv/bin/activate export PYTHONPATH=$(pwd) # 启动 Gradio 应用 python app.py --port 7860 --host 0.0.0.0 deactivate

4.2 自定义启动参数

您可以修改app.py中的启动参数以适应本地开发需求:

import gradio as gr from itn_engine.processor import inverse_text_normalization def create_interface(): with gr.Blocks(title="中文逆文本标准化") as demo: gr.Markdown("## 中文逆文本标准化 (ITN)") gr.Markdown("webUI二次开发 by 科哥 | 微信:312088415") with gr.Tab("📝 文本转换"): with gr.Row(): input_text = gr.Textbox(label="输入文本", lines=5) output_text = gr.Textbox(label="输出结果", lines=5) btn = gr.Button("开始转换") btn.click(fn=inverse_text_normalization, inputs=input_text, outputs=output_text) # 更多 Tab... return demo if __name__ == "__main__": demo = create_interface() demo.launch( server_name="0.0.0.0", server_port=7860, share=False, # 是否生成公网链接 debug=True # 开启调试模式 )

4.3 执行启动命令

确保权限正确后运行:

chmod +x run.sh ./run.sh

成功启动后,终端将显示:

Running on local URL: http://0.0.0.0:7860

5. 功能验证与测试

5.1 访问 WebUI 界面

打开浏览器,访问:

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

您应该能看到如下界面元素: - 标题栏:“中文逆文本标准化 (ITN)” - 两个标签页:“📝 文本转换” 和 “📦 批量转换” - 输入/输出文本框 - 控制按钮(开始转换、清空等) - 快速示例按钮组

5.2 单条文本测试

尝试输入:

二零零八年八月八日早上八点半

预期输出:

2008年08月08日 8:30a.m.

5.3 批量转换测试

创建测试文件test_input.txt:

二零一九年九月十二日 一百二十三 早上八点半 一点二五元

上传至「批量转换」页面,点击「批量转换」,检查下载结果是否符合预期。


6. 二次开发建议

6.1 修改 UI 样式

Gradio 支持自定义 CSS。可在launch()中添加:

demo.launch( ... css=""" .gr-button { background-color: purple !important; color: white; } """ )

6.2 扩展新转换类型

例如增加“温度”转换规则:

# 在 processor.py 中添加逻辑 def handle_temperature(text): patterns = [ (r'零下(\d+)度', lambda m: f'-{m.group(1)}°C'), (r'(\d+)摄氏度', lambda m: f'{m.group(1)}°C') ] for pattern, repl in patterns: text = re.sub(pattern, repl, text) return text

然后在主处理流程中调用。

6.3 添加日志记录

便于调试和追踪请求:

import logging logging.basicConfig(level=logging.INFO) def inverse_text_normalization(text): logging.info(f"Received input: {text}") # 处理逻辑... logging.info(f"Output: {result}") return result

7. 常见问题与解决方案

7.1 端口被占用

错误提示:OSError: [Errno 98] Address already in use

解决方法:

# 查看占用端口的进程 lsof -i :7860 # 终止进程 kill -9 <PID> # 或更换端口 python app.py --port 7861

7.2 依赖缺失导致报错

如出现ModuleNotFoundError,请检查: - 虚拟环境是否激活 -requirements.txt是否完整 - 包名拼写是否正确

建议使用pip check验证依赖完整性。

7.3 权限不足

若/root/run.sh无法执行,请确认用户权限:

# 将当前用户加入 root 组(谨慎操作) sudo usermod -aG sudo $USER # 或复制项目到用户目录 cp -r /root/fst-itn-zh ~/ && chown -R $USER:$USER ~/fst-itn-zh

8. 总结

本文详细介绍了FST ITN-ZH 中文逆文本标准化系统的本地开发环境搭建全过程,涵盖从环境准备、项目配置、脚本运行到功能测试与二次开发的各个环节。

核心要点回顾: 1. 使用 Python 虚拟环境隔离依赖 2. 正确配置run.sh启动脚本 3. 通过 Gradio 快速构建交互式 WebUI 4. 支持单条与批量两种转换模式 5. 提供高级设置选项增强灵活性

该系统已在实际场景中验证可用性,支持日期、时间、数字、货币等多种中文表达形式的标准化转换,具备良好的扩展性和维护性。


获取更多AI镜像

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 10:51:34

Markdown转PPT神器:5分钟打造专业级技术演示文稿

Markdown转PPT神器&#xff1a;5分钟打造专业级技术演示文稿 【免费下载链接】md2pptx Markdown To PowerPoint converter 项目地址: https://gitcode.com/gh_mirrors/md/md2pptx 还在为技术演示文稿的格式调整而头疼吗&#xff1f;md2pptx是一款革命性的开源工具&#…

作者头像 李华
网站建设 2026/10/1 10:51:34

开源可部署大模型:Qwen3-4B-Instruct-2507多语言支持详解

开源可部署大模型&#xff1a;Qwen3-4B-Instruct-2507多语言支持详解 1. 引言 随着大语言模型在实际业务场景中的广泛应用&#xff0c;对高性能、低延迟、多语言支持的轻量级模型需求日益增长。Qwen3-4B-Instruct-2507作为通义千问系列中40亿参数规模的最新指令微调版本&…

作者头像 李华
网站建设 2026/10/1 10:51:34

YOLOv10车辆识别实战:2块钱玩转智能交通

YOLOv10车辆识别实战&#xff1a;2块钱玩转智能交通 你是不是也遇到过这样的情况&#xff1f;作为大学生做智慧城市相关的课题&#xff0c;老师建议用YOLO这类目标检测模型来做车辆识别分析&#xff0c;结果自己笔记本一跑demo就卡成PPT&#xff0c;视频播放比幻灯片还慢。想租…

作者头像 李华
网站建设 2026/10/1 10:51:34

超详细版UART中断驱动通信实现步骤

手把手教你实现高效的UART中断通信&#xff1a;从原理到实战你有没有遇到过这样的场景&#xff1f;MCU主程序正在执行一个耗时任务&#xff0c;比如处理传感器数据或跑控制算法&#xff0c;突然串口来了几帧关键指令——结果因为没及时读取&#xff0c;数据被新来的字节覆盖了。…

作者头像 李华
网站建设 2026/10/1 10:51:34

YOLOv10零基础教程:云端GPU免配置,1小时1块快速上手

YOLOv10零基础教程&#xff1a;云端GPU免配置&#xff0c;1小时1块快速上手 你是不是也和我当初一样&#xff1f;计算机专业的学生&#xff0c;毕业设计想做个目标检测项目&#xff0c;选了最新的YOLOv10模型&#xff0c;结果发现自己的笔记本连独立显卡都没有。装CUDA、配PyT…

作者头像 李华
网站建设 2026/9/30 14:05:39

深度掌控AMD处理器:Ryzen SDT调试工具完全使用指南

深度掌控AMD处理器&#xff1a;Ryzen SDT调试工具完全使用指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitco…

作者头像 李华