- """
- 使用opensmile提取is09的特征集
- """
- import os
- import csv
- import numpy as np
- # 设置配置文件
- pathConfig = r"F:\opensmile-3.0.1-win-x64\config\is09-13\IS09_emotion.conf"
- # 设置exe的路径:
- pathExcuteFile = r"F:\opensmile-3.0.1-win-x64\bin\SMILExtract.exe"
- # 设置wav的路径:
- pathAudioRoot = r"E:\repository\Reappearance_Multimodality\code\wavs" # wav文件所在文件夹位置
- # 过度文件夹 用于保存csv特征
- file_path = r"E:\repository\code\csnd\corpus"
- def excuteCMD(excutefile,config,audio,output):
- """
- 定义调用cmd执行指令的函数
- """
- cmd=excutefile+" -C "+config+" -I "+audio+" -csvoutput "+output
- print(cmd)
- return cmd
-
- def csvtolist(namefront):
- """
- 将csv转为list进行输出查看
- """
- with open(namefront) as f:
- f_csv=csv.reader(f)
- header=next(f_csv) # 取出标题 第一行
- l = []
- for row in f_csv:
- print("原始的:\n", row)
- l = row[0].split(';')[2:] # 以‘;’进行分割,并去掉前两个元素 得到一条语音的特征 前两个特征是:'unknown';0.000000
- print(np.array(l).shape)
- print("去掉前两个元素并转为列表后:\n", l)
- float_l = list(map(float, l)) # 将字符串型的 元素转为 float 型的 #!!!类型转换的方法
- print("将列表里的字符串转为浮点型:\n", float_l)
- print(len(l))
- print(np.array(l).shape)
- os.remove(namefront) # 读取完就删除原来的文件
- return float_l
-
- for wav in os.listdir(pathAudioRoot):
- pathaudio=os.path.join(pathAudioRoot,wav)
- print(pathaudio)
- csv_filedir = os.path.join(file_path, wav[0:-4]) + '.csv' # 保存csv特征文件的路径
- print("保存路径:", csv_filedir)
- os.system(excuteCMD(pathExcuteFile,pathConfig,pathaudio,csv_filedir)) # 使用os.system执行指令
- l=csvtolist(csv_filedir)
代码中已增加print查看细节。