Praat脚本-014 | 删除选择区域内的所有边界条

最近更新了几篇有关于在标注数据的时候,便捷的对所选的部分进行删除等操作,今天新增加两个功能即是对选择的区域直接保存为新文件的操作,现将目前四个按钮的功能都一并介绍。

新增菜单功能一:见文章[脚本 | Praat自建菜单批量删除边界-简化版]。脚本是:Delete_Selected_Boundary.Praat。标注时删除所选区域的边界条,最新版本已经修改为可以同时删除你标注TextGrid里所有层的边界条。

使用前:标注如下,我们选择如图区域,想删除这部分边界条;

在这里插入图片描述

点击我们自定义的菜单在Boundary菜单里的Remove all boundary…;

效果:
在这里插入图片描述

如果想只删除其中一层,那么修改Delete_Selected_Boundary.Praat这个脚本里的以下这个地方,将totalTiers = 1前面的#号去掉。代表你只想删除第一层的边界条。将1修改为你要删除边界条的任意一层。

在这里插入图片描述

新增菜单功能二:见文章[脚本|Praat自定义菜单:标注时删除所选部分]。脚本是:Cut_Selected_Sound.Praat。

使用场景:标注时遇到噪声段,或者发音人非录音的呼吸声、咳嗽等声音,或者由于录音重复读了一小句,想直接剪切掉这一小段;

问题:如果这时候你是同时打开的WAV和TextGrid,你会发现没有相应的菜单操作;

自定义菜单改进:可以一键剪切掉这一段,并且是同时对WAV和TextGrid进行剪切的操作;

特别注意:请注意备份原始文件。因为这会覆盖保存原始文件;

使用前:
在这里插入图片描述

使用后,上面所选区域已经被剪切掉了;

在这里插入图片描述

今日新增菜单功能三:保存所选区域内的这部分声音。脚本是:Save_Selected_Sound.Praat。

使用场景:在清洗大量数据的时候,人工测听判断要保存哪部分,如何便捷保存,节省频繁打开目录的时间;

原始操作:Praat现有一个操作,选择之后,点击File菜单里的Save selected sound as WAV file …;
在这里插入图片描述

存在问题:这时候需要你手工选择保存路径,并且要自己命名新的文件名,频繁操作必然非常繁琐…;

本功能改进:在Edit自定义一个Save WAV Selection菜单,选择了某一部分之后,点击这个菜单,将会自动在原始文件同级目录里创建一个新目录,并且将选择的wav保存在里面,新文件的命名也是自动用选择的开始时间点命名的,这样防止多次操作文件名重复被覆盖;

今日新增菜单功能四:保存所选区域内的这部分声音和标注。脚本是:Save_Selected_Parts.Praat。

具体场景功能和上述菜单三是一样的,只是这里是把标注的部分也一并保存。在此不再详细描述;

功能三和功能四示例,操作之前:

在这里插入图片描述

操作之后,新保存的文件:

在这里插入图片描述

自然如果再选择一段0.703-0.944秒的部分,保存的文件名可能是00001_0-703.wav这样的。

获取脚本

https://github.com/feelins/Praat_Scripts/14-helpful_customized_menu

本站所有Praat脚本都可以在上述github的项目目录里找到,如果日常对代码、脚本操作比较熟练的可通过下载、安装、配置github for windows在自己的电脑上通过git clone将代码下载到本机,这样的好处是可以跟主站及时更新代码。
不想费如此脑筋,可以通过点击如下图Code位置所示,下载整站的代码,可直接使用。
在这里插入图片描述

关注

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

在这里插入图片描述

版权说明

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

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

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

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

### 使用 Praat 脚本检测和处理音频中的静音段 Praat 是一种强大的语音分析工具,其内置的脚本功能可以用于自动化各种任务,包括检测和去除音频文件中的静音段。以下是实现这一目标的具体方法。 #### 方法概述 通过编写 Praat 脚本来自动检测并移除音频首尾的静音部分,能够显著提高工作效率。此过程依赖于 Praat 的 `To TextGrid` 和 `Extract part` 功能,这些功能允许基于特定件分割音频片段[^2]。 --- #### 实现步骤说明 以下是一个完整的 Praat 脚本示例,该脚本会读取指定目录下的所有 `.wav` 文件,并自动删除音频开头和结尾的静音部分: ```praatscript form Fill in the parameters { sentence directory "Directory with .wav files:" 'C:/path/to/audio/files/' positive threshold "Silence intensity threshold (in dB):" -40 } button "Run script" # 获取参数 directory$ = Get string$ threshold = Get number$ # 遍历目录中的所有 WAV 文件 files$[] = Create Strings as file list: "list", directory$, "*.wav" nFiles = Get number of strings for i to nFiles fileName$ = files$[i] # 加载当前音频文件 Read from file: directory$ + "/" + fileName$ # 创建一个 TextGrid 对象以标记非静音区域 To TextGrid (silences): threshold, 0.1, 0.1, 0.95, "VOT", "silent", "sounding" # 提取消音后的音频部分 Extract part between boundaries: 1, "yes" # 将结果保存到新文件名中(附加 _trimmed) baseName$ = Remove extension$(fileName$) Write to WAV file: directory$ + "/trimmed_" + baseName$ + ".wav" endfor ``` 上述脚本的功能如下: - 用户可以通过表单输入音频所在的路径以及定义静音强度阈值(单位为分贝)。低于设定阈值的部分会被视为静音。 - 利用循环结构逐一加载指定目录内的 `.wav` 文件。 - 借助 `To TextGrid (silences)` 函数识别出静音区间。 - 应用 `Extract part between boundaries` 来提取有效声音区间的子波形。 - 处理完毕后生成新的修剪版音频文件,存储在同一目录下,名称前缀加上 `_trimmed` 表明已裁剪过的状态。 --- #### 关键函数解释 1. **`To TextGrid (silences)`** 此命令依据给定的能量水平区分无声与有声阶段,并创建相应的标注层。它接受多个参数调整敏感度设置,例如最小持续时间和最大间隔比例等。 2. **`Extract part between boundaries`** 它按照先前建立的时间边界选取感兴趣的片段作为独立对象返回。这里选择的是第一个发声至最后一个发声之间的范围。 3. **`Write to WAV file`** 输出最终修改好的版本回磁盘上永久保留下来。 --- #### 注意事项 尽管这种方法适用于大多数常规场景,但在某些特殊情况下可能需要额外注意: - 如果背景噪音较大,则简单的能量门限法可能会误判实际沉默时段; - 当存在重叠话语或其他复杂现象时,单纯依靠幅度判断未必足够可靠,此时可考虑引入更高级别的特征提取技术辅助决策[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

极地语音工作室

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

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

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

打赏作者

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

抵扣说明:

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

余额充值