Opensmile提取相关的语音特征

import os
import numpy as np
import csv

from util import util_extract
# 每个特征集的特征数量
FEATURE_NUM = {
    'IS09_emotion': 384,
    'IS10_paraling': 1582,
    'IS11_speaker_state': 4368,
    'IS12_speaker_trait': 6125,
    'IS13_ComParE': 6373,
    'ComParE_2016': 6373
}
def excuteCMD(_pathExcuteFile, _pathConfig, _pathAudio, _pathOutput):
    cmd = _pathExcuteFile + " -C " + _pathConfig + \
          " -I " + _pathAudio + " -csvoutput " + _pathOutput
    print(cmd)
    return cmd
def coverCsvToNumpy(nameFront):
    csvfile = open(nameFront, 'r')
    reader = [each for each in csv.DictReader(csvfile, delimiter=';')]
    dataList = []
    for row in reader:
        dataList.append([])
        for i in row:
            # if i == None:
            #     continue
            # #print(i)
            if ('name' in i or 'frameTime' in i):
                continue
            dataList[len(dataList) - 1].append(row[i])
    csvfile.close()
    npList = np.array(dataList)
    # print(npList.dtype)
    # reader = csv.reader(open(nameFront, 'r'))
    # rows = [row for row in reader]
    # last_line = rows[-1]
    # print(FEATURE_NUM["IS09_emotion"])
    # return last_line['unknown'][1: FEATURE_NUM["IS09_emotion"] + 1]
def _main_deal_dir_mfcc(file_name:str,package_name):
    pathExecute = "E:\\file\opensmile-3.0.1-win-x64"
    pathModel = "mfcc\\MFCC12_0_D_A"

    pathExcuteFile = pathExecute + "\\bin\\" + "SMILExtract.exe"
    pathConfig = pathExecute + "\\config\\" + pathModel + ".conf"
    #数据集的相关位置
    pathAudioRoot = "H:\IEMOCAP_full_release\Session{}\sentences\wav".format(file_name[4])
    file_path = "./" + file_name.split("_")[0]
    if os.path.exists(file_path) == False:
        os.mkdir(file_path)
    csv_filedir = "./" + file_name.split("_")[0] + "/" + file_name + ".csv"

    _pathAudio = os.path.join(pathAudioRoot, package_name, file_name) + ".wav"
    os.system(excuteCMD(pathExcuteFile, pathConfig, _pathAudio, csv_filedir))
    return coverCsvToNumpy(csv_filedir)

使用目标数据集,来进行语音特征集提取
本文是采用Windows环境下的opensmil进行提取

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值