Praat提取的基频可以工程应用吗?
Praat
作为普通语音学习者的标注工具已经算是比较经典的工具了。近些年来,随着AI的兴起,神经网络的算法更新迭代也很迅速,这其中有一些算法会涉及到基频,也称为音高,这个参数的应用。而作为学习者在学习科研中,基频也是一个衡量声调或者语调的重要表现特征。今天的话题是想比较使用Praat
提取的基频和两种工程应用级别提取的基频是否有比较大的差异,换句话说,如果使用Praat
这个工具提取的基频,能做到工程应用吗?
我们选择标贝公司的开源数据中的一句为例,
推荐 | 实用的开源数据(更新中)
本文涉及到的程序和数据见:
https://github.com/feelins/Python-linguistics/tree/main/Part-03/P03_003_get_pitch
我们分别使用Praat
, Straight
, WORLD
,提取这句话的基频, 后面两种工具, Straight是日本的和歌山大学的一位教授开发,它的matlab代码是开源的,在语音界早期很长的一段时间内,它都作为一个重要的参数提取和声码器。 近些年来,WORLD作为一种开源的声学参数分析工具和声码器,也被广泛应用。我们现在就来比较三种工具提取的基频是有多大的不同。
- Praat脚本:https://github.com/feelins/Python-linguistics/blob/main/Part-03/P03_003_get_pitch/Get_Pitch.Praat
- Straight: 因为没有开源的python代码或者工具代码,需要在matlab环境使用;
- python脚本:https://github.com/feelins/Python-linguistics/blob/main/Part-03/P03_003_get_pitch/extract_f0_by_WORLD.py
三种工具,对同一句音频,提取的基频,也在这个目录内:
https://github.com/feelins/Python-linguistics/tree/main/Part-03/P03_003_get_pitch
我们使用的基频是16K
采样率,提取的时候都是使用5毫秒
的帧长,Praat
和Straight
相同,都是提取了532帧
,而world提取了533帧
,此处仍然需要笔者去查阅是为什么,有兴趣的伙伴也可以关注。我们默认忽略这一个点的区别。
先画一个点线图,虽然有个别数据点的不同,总体看上去并没有比较大的区别。
其次,我们检查后发现,整个音频,有连续基频点的一共是6段,我们分别比较这6段,再和原始音频比较,查看这6段的范围,在3种工具上是否有大的差异。人工检查后,大概定位这6段的开始时间和结束时间为:
开始时间 | 结束时间 |
---|---|
0.4 | 0.58 |
0.74 | 0.88 |
0.97 | 1.32 |
1.42 | 1.8 |
1.88 | 2.04 |
2.19 | 2.38 |
针对三个工具提取的时间点,假如我们认为跟人工标记的最相近得2分,否则得1分。
工具 | 开始帧 | 结束帧 | 开始时间 | 结束时间 | 得分 |
---|---|---|---|---|---|
Praat | 85 | 120 | 0.425 | 0.6 | 1 |
149 | 180 | 0.745 | 0.9 | 1 | |
195 | 269 | 0.975 | 1.345 | 2 | |
284 | 361 | 1.42 | 1.805 | 2 | |
382 | 409 | 1.91 | 2.045 | 2 | |
438 | 475 | 2.19 | 2.375 | 2 | |
straight | 82 | 117 | 0.41 | 0.585 | 2 |
150 | 180 | 0.75 | 0.9 | 1 | |
194 | 268 | 0.97 | 1.34 | 2 | |
285 | 362 | 1.425 | 1.81 | 2 | |
381 | 415 | 1.905 | 2.075 | 1 | |
439 | 493 | 2.195 | 2.465 | 1 | |
world | 78 | 117 | 0.39 | 0.585 | 2 |
150 | 180 | 0.75 | 0.9 | 1 | |
194 | 273 | 0.97 | 1.365 | 1 | |
285 | 368 | 1.425 | 1.84 | 2 | |
381 | 409 | 1.905 | 2.045 | 2 | |
438 | 482 | 2.19 | 2.41 | 2 |
事实上,这样的判断反而发现Praat和WORLD
是比较接近人工判断的,当然这个人工判断仅是笔者一人所为,有兴趣的伙伴可以自己尝试提取数据比较。
总之,笔者认为,使用Praat提取的基频完全可以作为工程使用。
获取脚本
https://github.com/feelins/Python-linguistics
本站所有Praat脚本
都可以在上述github的项目目录
里找到,如果日常对代码、脚本操作比较熟练的可通过下载、安装、配置github for windows
在自己的电脑上通过git clone
将代码下载到本机,这样的好处是可以跟主站及时更新代码。
不想费如此脑筋,可以通过点击如下图Code位置所示,下载整站的代码,可直接使用。
关注
公众号:极地语音工作室, QQ讨论群720939827
版权说明
1、版权归本博客作者所有;
2、未经本站或者作者允许, 不得任意转载本文内容,否则将视为侵权;
3、转载或者引用本文内容请注明来源及原作者;
4、对于不遵守此声明或者其他违法使用本站内容者,本人依法保留追究权等。
Praat提取的基频可以工程应用吗?相关推荐
- linux praat 脚本,Praat脚本编程中文教程:实例讲解提取十点基频脚本
如果本系列教程你是从头开始看的话,那么到这里相信很多人已经有了相应的基础了,但可能还有很多人看着前面的教程都是分开单个功能点进行讲解的,理解每一行代码应该没问题,但是要是真的给你一个需求,让你根据需求 ...
- 声音信号基音提取算法基频和谐波处理分析
1.内容简介 略 293-可以交流.咨询.答疑 2.内容说明 略 一. 实验原理: 傅里叶变换建立了信号频谱的概念.所谓傅里叶分析即分析信号的频谱(频率构成).频带宽度等.要想合成出一段音乐,就要了解 ...
- Praat脚本-009 | 提取时长和基频
目录 引题 提取基频 操作解释 运行脚本 获取脚本 关注 版权说明 引题 在提取数据的工作中,提取基频这是最重要的一部分,基频也可以称为Pitch, F0.它跟我们感知到的声调,语调是相关的,所以通常 ...
- Praat脚本-010 | 提取时长和共振峰
目录 引题 操作解释 运行脚本 获取脚本 关注 版权说明 引题 与提取基频的工作类似,提取共振峰也是很常用的一个数据提取操作,共振峰在物理学上称为共振谐波,最典型的例子是我们扔石子到水里,看到的一条一 ...
- Praat之基频分析
Praat之基频分析 测量基频F0的方法 自相关 Autocorrelation(易出现pitch-halving\pitch-double) 窄带谱图 Narrowband spectrogram( ...
- matlab音频基频的提取,(620512681) 自相关基频提取算法的MATLAB实现
第31卷总第80期 西北民族大学学报(自然科学版) V01.31.No.4 1 0年1 2 0 2月 Journal of Nonhw铭t University for Nationalities(N ...
- python提取时长2s以内的单词音频的韵母基频,以及单词词长信息
python提取时长2s以内的单词音频的韵母基频,以及单词词长信息 提取信息自动存入当前工作空间中的excel文件,包括文件名.前字时长.后字时长.两字总时长.前字韵母基频.后字韵母基频.(10个点, ...
- matlab提取语音信号基频检测,语音信号处理中基频提取算法综述
[实例简介] 语音信号处理中基频提取算法综述,论述了各种基频检测的算法,对比分析各方法与思想,不错的总结 增刊 张杰等:语音信号处理中基频提取算法综述 101 信号是由频率具有谐波关系的信号组成的,因 ...
- praat 语音识别教程
http://blog.csdn.net/shaopengfei/article/details/51363464 近期更新了几篇Praat脚本从标注的TextGrid里提取数据一些脚本,发现有一些朋 ...
最新文章
- Docker学习(三)-----Docker镜像常用命令
- 运用层通过shell脚本直接操控gpio
- Java I/O系统学习系列一:File和RandomAccessFile
- android mvp简书,Android_MVP学习
- 简易的设计模式——原型模式
- 将字符串中的小写字母转换成大写字母 (信息学奥赛一本通-T1138)
- Scrum指南这么改,我看要完蛋!
- 给GridView分页
- 欧盟网络安全局发布《供应链攻击威胁全景图》报告(中)
- wps linux 在线安装程序,WPS Office 2019 For Linux下载及安装教程
- SQL语句--创建视图
- javaweb面试题总结
- Ubuntu下编译vtk(java版本)【超详细-带过程截图】
- python滑稽脸_使用python的turtle绘画滑稽脸实例
- 优秀的 Verilog/FPGA开源网站介绍
- C#:Krypton控件使用方法详解(第十四讲) ——kryptonSeparator
- 测试用例-——教室和椅子
- vivado综合出现“PID not specified”问题的参考解决方法
- APP新用户注册、手机号绑定、用户登录验证新方式——一键登录(免密登录)验证方式新趋势
- mongodb安装配置与基本命令
热门文章
- STM32F103移植FreeModbus实现ModbusRTU和ModbusTCP同时工作
- 2022年制冷与空调设备运行操作考试试题及模拟考试
- vue项目打包部署到服务器上后页面404问题
- Docker compose file 中文参考文档
- java实现仿qq界面及功能、网路编程、实现抽象工厂模式、线程池代码与测试
- 为儿童设计的Android 4.0平板MEEP!
- openssh服务和iptabels、firewalld防火墙
- 电子摇奖机电路的设计仿真与制作——数电课设(包含PCB文件)
- 亚信安全防毒墙网络版卸载,联软安全助手(lva_setupfull)卸载
- 微型计算机的主要技术性能指标,微型计算机的主要性能指标