######################################################################### ## 提取某目录下所有文件夹里声音文件的谐噪比(HNR)及标准差脚本 ## Written by Qibin Ran (ranqibin@126.com) ## 2020-01-22 ######################################################################### form 参数设置 comment 设定读取声音文件的路径 text Input_D C:\Users\ran\Desktop\8test comment 设定存储谐噪比(HNR)文件的路径 text Output_D C:\Users\ran\Desktop\8test\0Result comment 设定保存谐噪比(HNR)数据的文件名 text hnrName 谐噪比(HNR)及标准差数据.txt endform if right$(input_D$,1) <> "\" input_D$ = input_D$ + "\" endif if right$(output_D$,1) <> "\" output_D$ = output_D$ + "\" endif Create Strings as directory list... direcList 'input_D$' numberOfDirecs = Get number of strings createDirectory: output_D$ fileappend 'output_D$''hnrName$' language'tab$'order'tab$'word'tab$'harmonicity'tab$'standard deviation'newline$' for iDirec from 1 to numberOfDirecs select Strings direcList direcName$ = Get string... 'iDirec' wdirecName1$ = input_D$ + direcName$ wdirecName$ = wdirecName1$ + "\" # wodirecName1$ = output_D$ + direcName$ # wodirecName$ = wodirecName1$ + "\" Create Strings as file list... wavList 'wdirecName$'*.wav num = Get number of strings a = 1 for iwav to num select Strings wavList fileName$ = Get string... 'iwav' sName$ = fileName$ - ".wav" Read from file... 'wdirecName$''fileName$' To Harmonicity (cc)... 0.01 75 0.1 1.0 har = Get mean... 0.0 0.0 sdev = Get standard deviation... 0.0 0.0 fileappend 'output_D$''hnrName$' 'direcName$''tab$''a''tab$''sName$''tab$''har''tab$''sdev''newline$' Remove select Sound 'sName$' Remove a = a + 1 endfor select Strings wavList Remove fileappend 'output_D$''hnrName$' 'newline$''newline$' endfor select Strings direcList Remove exit OK!指定文件夹中所有声音文件的谐噪比(HNR)数据已经提取!