Python | 基本的信息统计-层级之间的信息

本文的脚本还是关于统计,上一次提供了针对某一层的统计信息(Praat脚本 | 基本的信息统计),可以帮助我们了解自己标注的具体情况,可以检查标注的信息是否有错误。本次提供一个Python脚本还是关于统计的,除了单独了解每一层的标注信息,我们有时候还想了解某个字或者词,在我们的音库里标注了几种情况的发音。比如print这个词或者“卡”这个字,我们想了解总共有几种发音形式?

有人可能会好奇这么做的意义,因为几乎每个词每个字基本都有固定的发音?!但很多语言的字词都会有复杂的发音体系,也就是发音并不唯一;再者说,你所面对的音库,就每个发音人来说,他/她也总会在语流中,表现出很多不符合标准发音的样本。这次的脚本就是可以做到统计以字或者词为单位的发音情况。

笔者尝试使用Praat脚本来实现,但是未能达到目的,Praat在处理这类问题时显示比较无力。或许有人会有更好的方法也可以提出来讨论。所以本文使用的是Python脚本来实现,这个脚本程序用到了前面介绍的使用Python读取TextGrid的一个开源包,如果不清楚的请查阅一下(Python | 如何优雅的使用Python读取TextGrid文件)。

使用这个脚本可以先使用这两套开源数据试一下,下载地址在https://github.com/feelins/Praat_Scripts/tree/master/data, 关于这两套数据的详细说明可通过关注微信公众号“语音处理小站“,查找一篇”推荐|中文普通话和英语开源数据“的文章。

代码段:

首先建立一个常规的Python文件。比如示例中使用的a02_stats_complex_infos.py,第一句命令,如下将这个textgrid包读进来命名为tg。

import textgrid as tg

紧接着,要确定你所用的TextGrid包括两层,一层是字或者词信息,一层是它的发音音素,如下图。
在这里插入图片描述
这里要确定你的标注文件两层的名称,即图上右侧的PhonWord,这个要设置一下程序里的这个位置,这里是区分大小写的。

ph_tiers = tg.read_textgrid(input_textgrid_file, 'Phon')
wd_tiers = tg.read_textgrid(input_textgrid_file, 'Word')

然后打开Python程序,设置输入的TextGrid目录,以及要保存的结果路径。

input_textgrid_dir = r'E:\006_TTS\biaobei\CMU_Demo'
save_result_file = r'E:\006_TTS\biaobei\CMU_Demo_complex.txt'

然后使用你熟悉的方式运行Python代码,打开结果文件,将会看到统计结果。可见,有的字是明确一个读音的,而有的字,可能是多音字,也有可能是发音人读的两种读音,比如这里的字。

itemValue
[‘v3’, ‘v2’]
[‘sa4’]
[‘qie4’, ‘qie1’]
[‘er3’]
[‘huei4’]

来看一下英语数据,
在这里插入图片描述
要注意这里的层级名称,一个是phones,一个是words,所以在代码里要同样设置:

ph_tiers = tg.read_textgrid(input_textgrid_file, 'phones')
wd_tiers = tg.read_textgrid(input_textgrid_file, 'words')

运行之后,我们得到以下结果,同样会发现一些词出现了多种读音,如them, on, and

itemValue
them[‘DH AH0 M’, ‘DH EH1 M’]
i[‘AY1’]
hope[‘HH OW1 P’]
i’ll[‘AY1 L’]
go[‘G OW1’]
on[‘AO1 N’, ‘AA1 N’]
seeing[‘S IY1 IH0 NG’]
forever[‘F ER0 EH1 V ER0’]
and[‘AE1 N D’, ‘AH0 N D’]
如何获取脚本 https://github.com/feelins/Praat_Scripts

本站所有Praat脚本都可以在上述github的项目目录里找到,如果日常对代码、脚本操作比较熟练的可通过下载、安装、配置github for windows在自己的电脑上通过git clone将代码下载到本机,这样的好处是可以跟主站及时更新代码。
不想费如此脑筋,可以通过点击如下图1位置所示,下载整站的代码,也可直接使用。
download
本文的代码是00-Python/a02_stats_complex_infos.py,点进去之后,还有附带的示例文件,同学可练习使用。脚本里有我的邮箱,有任何问题都可以来信咨询。

关注

关于对本站脚本的使用咨询,以及功能修改,增加等,都可以扫QQ咨询群,私信群主。

在这里插入图片描述

版权说明

1、版权归本公众号“极地语音工作室”,原名“语音处理小站”所有;

2、未经本站或者作者允许, 不得任意转载本文内容,否则将视为侵权;

3、转载或者引用本文内容请注明来源及原作者;

4、对于不遵守此声明或者其他违法使用本站内容者,本人依法保留追究权等。

结合一下人家的思路,再重新输出一份吧?以下是根据需求调研表梳理的**①流程梳理、②功能清单、③需求文档框架**,供您正式编写文档时使用: --- ### 一、流程梳理 #### **核心业务流程** ```mermaid graph TD A[风险分析单元定义] --> B[风险辨识评价] B --> C[预警管控分析] C --> D[危险源/顶上事件配置] D --> E[威胁与后果管理] E --> F[屏障添加:预防类/减缓类] F --> G[全景可视化看板] G --> H[预警处置闭环] ``` #### **关键子流程** 1. **风险单元注册流程** 部门填报 → 绑定责任人与区域 → 生成单元列表 2. **风险辨识流程** 选择风险单元 → 填报危险源/顶上事件 → 关联设备设施 3. **屏障构建流程** 选择威胁 → 添加预防屏障 → 选择后果 → 添加减缓屏障 4. **预警可视化流程** 数据聚合 → 风险画像生成 → 动态预警地图 → 钻取式详情查看 --- ### 二、功能清单 #### **模块1:基础数据管理** | 功能点 | 说明 | |-----------------------|---------------------------------------| | 1.1 风险分析对象管理 | 维护重大/非重大危险源分类 | | 1.2 设备设施库 | 集成PID、APC、联锁系统等设备基础数据 | #### **模块2:风险分析单元管理** | 功能点 | 必填 | 说明 | |-----------------------|------|-----------------------------------| | 2.1 单元注册 || 填报位置、责任人、部门、管控层级 | | 2.2 单元列表查询 || 支持按区域/责任人/部门多维度筛选 | | 2.3 单元详情查看 || 展示关联的危险源及屏障状态 | #### **模块3:风险辨识评价** | 功能点 | 必填 | 说明 | |-----------------------|------|-----------------------------------| | 3.1 辨识表单填报 || 录入分析单元编码/区域/管控层级| | 3.2 危险源定义 || 绑定能量类型(机械能/化学能等) | | 3.3 顶上事件配置 || 关联设备设施并描述异常事件 | #### **模块4:预警管控分析** | 功能点 | 屏障类型 | 说明 | |-----------------------|-----------------------|-----------------------------------| | 4.1 威胁管理 | - | 定义威胁名称及触发逻辑 | | 4.2 预防屏障添加 | 主动硬件/人工巡查 | 选择管控方式(连续监控/人工排查) | | 4.3 后果管理 | - | 录入后果严重性描述 | | 4.4 减缓屏障添加 | 被动硬件/人工巡检 | 关联应急响应资源(围堰/PPE等) | #### **模块5:全景可视化** | 功能点 | 数据来源 | |-----------------------|-----------------------| | 5.1 风险热力图 | GIS地图+风险单元分布 | | 5.2 屏障效能仪表盘 | 预防/屏障失效统计 | | 5.3 实时预警看板 | 整合AI视觉/传感器告警 | --- ### 三、需求文档框架(PRD) #### **1. 文档概述** - **项目名称**:安全综合预警平台-预警管控模型 - **目标**:实现精馏球罐区风险要素全链路数字化管控 - **范围**:重大危险源辨识 → 屏障配置 → 动态预警 → 决策支持 #### **2. 术语定义** | 术语 | 解释 | |--------------|----------------------------------------------------------------------| | 顶上事件 | 可能引发事故的异常状态(如球罐超压) | | 主动硬件屏障 | 自动干预的硬件措施(如安全阀、连锁切断) | | 被动硬件屏障 | 减缓事故扩大的物理设施(如围堰、防火堤) | #### **3. 功能需求详述** **3.1 风险分析单元注册** - **字段要求**: ```markdown | 字段 | 类型 | 约束 | 示例值 | |-----------------|---------|--------|---------------------| | 风险分析对象 | 文本 | 必填 | 精馏车间T001球罐 | | 管控层级 | 枚举 | 必填 | 公司级/车间级 | | 具体位置描述 | GIS坐标 | 必填 | 东经XXX, 北纬XXX | ``` **3.2 预警管控分析流程** ```mermaid graph LR T[威胁] --> P[预防屏障] P --> TE[顶上事件] TE --> C[后果] C --> M[减缓屏障] ``` **3.3 屏障配置规则** - **预防屏障类型**: - 主动硬件:液位HH/LL联锁、安全阀 - 人工巡查:每班次巡检计划 - **减缓屏障类型**: - 被动硬件:防火堤、气体检测仪 - 人工干预:应急响应小组 #### **4. 非功能性需求** - **数据整合**:支持API对接PID、APC、AI视觉系统 - **响应性能**:预警信息延迟 ≤ 3秒 - **权限控制**:按公司/部门/车间三级数据隔离 #### **5. 原型示例** - **危险源填报实例**: ```json { “名称”: “丙烯球罐V09A08”, “能量类型”: “化学能”, “物质属性”: “易燃气体”, “关联设备”: “液位传感器LT-101” } ``` - **屏障添加效果**: > 威胁: “进料阀误操作” → 预防屏障: “SIS联锁切断系统(主动硬件/连续监控)” --- ### 交付物说明 1. **流程梳理**:用于开发理解业务闭环 2. **功能清单**:作为系统开发模块划分依据 3. **需求文档**:包含字段规则、交互逻辑、整合接口定义 > **下一步建议**: > 1. 与智能制造部确认设备数据接口规范(如OPC UA协议) > 2. 验证GIS地图与厂区实际坐标的匹配精度 > 3. 制定屏障失效判定算法(如安全阀未按期检验=屏障失效) 此框架可直接扩展为正式PRD,需补充原型图及接口字段细节。
最新发布
07-14
<think>我们根据用户提供的需求调研表和之前梳理的流程、功能清单及需求文档框架,结合新的思路(包含流程图、功能清单表格、需求文档结构等),重新整合输出一份更清晰、可直接用于开发的需求材料。 注意:用户要求最后必须提出3-5个相关问题,且以“§§相关问题§§”开头,问题之间用数字编号。 由于用户要求使用中文回答,且需要包含三个部分:①流程梳理、②功能清单设计、③需求文档框架,我们将按照以下结构组织: ① 流程梳理:用流程图和文字描述核心流程和子流程。 ② 功能清单:用表格形式列出各模块功能点。 ③ 需求文档框架:按照标准PRD结构给出框架,包括术语定义、功能需求详述、非功能性需求等。 同时,在最后提出相关问题。 注意:用户要求“禁止换行分散”,所以相关问题部分要连续输出,不换行(但问题之间用数字分隔,数字后可以用空格或标点,然后紧跟问题内容,整个相关问题部分在一行内显示,但实际中问题较多时一行放不下,所以这里按照常规做法,每个问题单独一行,但用户示例中也是换行的,所以这里按照示例格式每个问题换行,但用户要求“禁止换行分散”可能是指不要将一个问题拆成多行?我们按每个问题一行,但整个相关问题部分连续输出,不插入空行)。 重新整合后的内容如下:</think>### 优化版需求材料(基于调研表整合) #### ① 流程梳理(关键路径) ```mermaid graph LR A[风险单元注册] --> B[绑定设备设施] B --> C{风险类型} C -->|重大危险源| D[全量屏障配置] C -->|非重大危险源| E[基础屏障配置] D & E --> F[威胁-屏障映射] F --> G[实时监控] G --> H[预警触发] H --> I[处置闭环] ``` **核心流程说明:** 1. **基础配置流** `风险单元注册` → 绑定责任人/区域 → 关联设备设施(PID/APC系统)→ 设置管控层级 2. **风险建模流** `危险源定义`(能量/物质)→ `顶上事件配置` → 添加`威胁`→ 配置`预防屏障` → 添加`后果`→ 配置`减缓屏障` 3. **预警处置流** 多系统数据聚合 → 屏障失效检测 → 生成预警 → 推送责任人 → 处置反馈 --- #### ② 功能清单(优先级标注) | 模块 | 功能点 | 优先级 | 关键字段 | 输出物 | |------|--------|--------|----------|--------| | **风险单元管理** | 1.1 单元注册 | ★★★ | 位置坐标/责任人/管控层级 | 单元ID | | | 1.2 单元列表 | ★★ | 区域筛选/状态过滤 | 可导出表格 | | **风险建模** | 2.1 危险源定义 | ★★★ | 能量类型/物质属性 | 风险矩阵 | | | 2.2 屏障配置 | ★★★ | 屏障类型/管控方式 | 屏障关系图 | | **预警引擎** | 3.1 实时监控 | ★★★ | 设备数据源/失效阈值 | 预警事件 | | | 3.2 处置闭环 | ★★ | 响应人/完成时限 | 处置报告 | | **可视化** | 4.1 风险热力图 | ★★ | GIS图层/风险等级 | 动态地图 | | | 4.2 屏障仪表盘 | ★★ | 完好率/响应时效 | 统计图表 | --- #### ③ 需求文档框架(PRD) **1. 业务规则详述** ```markdown | 概念 | 配置规则 | |-------------|--------------------------------------------------------------------------| | 预防屏障 | 必须关联威胁→支持类型:主动硬件(安全阀)、人工巡查(每班≤2次) | | 减缓屏障 | 必须关联后果→支持类型:被动硬件(围堰)、人工干预(响应时间≤5分钟) | | 管控层级 | 公司级(全厂风险)> 部门级(区域)> 车间级(装置)> 班组级(设备) | ``` **2. 接口需求** - **数据接入**: ```python # 示例:AI视觉系统对接 def get_ai_alerts(): # 协议:HTTPS/JSON # 字段:摄像头ID, 异常类型(火焰/泄漏), 置信度 return {"device": "CAM-203", "alert_type": "gas_leak", "confidence": 0.92} ``` **3. 原型逻辑** ```mermaid graph TB 威胁[液位超限] --> 预防屏障[HH联锁切断] 顶上事件[罐体破裂] --> 后果[丙烯泄漏] 后果 --> 减缓屏障[防火堤+应急小组] ``` **4. 非功能需求** | 指标 | 要求 | |--------------|--------------------------| | 预警延迟 | ≤3秒(从数据采集到推送) | | 数据精度 | 设备坐标误差<1米 | | 并发能力 | 支持200+装置实时监控 | --- ### 交付物说明 1. **流程文档**:包含注册→建模→预警全链路说明 2. **功能矩阵**:标注各功能优先级与输出物 3. **PRD框架**:可直接扩展为开发文档 > **实施建议**: > 1. 优先建设屏障配置引擎(支撑预防/减缓逻辑) > 2. 验证GIS坐标与实际装置位置偏差 > 3. 制定屏障失效判定标准(如安全阀超检期=自动预警)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极地语音工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值