码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • opensmile python 提取wav文件的IS09特征


    1. 前置知识:
      1. IS09 、eGeMAPS是以整个句子进行提取的,没有进行分帧载提取。
      2. 特征维度:
        1. IS09->384维
        2. eGeMAPS->88维
    2. 直接上代码(根据自己的环境配置路径即可运行):
      1. """
      2. 使用opensmile提取is09的特征集
      3. """
      4. import os
      5. import csv
      6. import numpy as np
      7. # 设置配置文件
      8. pathConfig = r"F:\opensmile-3.0.1-win-x64\config\is09-13\IS09_emotion.conf"
      9. # 设置exe的路径:
      10. pathExcuteFile = r"F:\opensmile-3.0.1-win-x64\bin\SMILExtract.exe"
      11. # 设置wav的路径:
      12. pathAudioRoot = r"E:\repository\Reappearance_Multimodality\code\wavs" # wav文件所在文件夹位置
      13. # 过度文件夹 用于保存csv特征
      14. file_path = r"E:\repository\code\csnd\corpus"
      15. def excuteCMD(excutefile,config,audio,output):
      16. """
      17. 定义调用cmd执行指令的函数
      18. """
      19. cmd=excutefile+" -C "+config+" -I "+audio+" -csvoutput "+output
      20. print(cmd)
      21. return cmd
      22. def csvtolist(namefront):
      23. """
      24. 将csv转为list进行输出查看
      25. """
      26. with open(namefront) as f:
      27. f_csv=csv.reader(f)
      28. header=next(f_csv) # 取出标题 第一行
      29. l = []
      30. for row in f_csv:
      31. print("原始的:\n", row)
      32. l = row[0].split(';')[2:] # 以‘;’进行分割,并去掉前两个元素 得到一条语音的特征 前两个特征是:'unknown';0.000000
      33. print(np.array(l).shape)
      34. print("去掉前两个元素并转为列表后:\n", l)
      35. float_l = list(map(float, l)) # 将字符串型的 元素转为 float 型的 #!!!类型转换的方法
      36. print("将列表里的字符串转为浮点型:\n", float_l)
      37. print(len(l))
      38. print(np.array(l).shape)
      39. os.remove(namefront) # 读取完就删除原来的文件
      40. return float_l
      41. for wav in os.listdir(pathAudioRoot):
      42. pathaudio=os.path.join(pathAudioRoot,wav)
      43. print(pathaudio)
      44. csv_filedir = os.path.join(file_path, wav[0:-4]) + '.csv' # 保存csv特征文件的路径
      45. print("保存路径:", csv_filedir)
      46. os.system(excuteCMD(pathExcuteFile,pathConfig,pathaudio,csv_filedir)) # 使用os.system执行指令
      47. l=csvtolist(csv_filedir)

      代码中已增加print查看细节。

  • 相关阅读:
    [深度学习] python基础支持汇总
    ps神经网络滤镜安装包,ps神经网络滤镜用不了
    Python统计学10——时间序列分析自回归模型(ARIMA)
    gcc对void型指针的类型检查有问题?
    【vue2第十七章】VueRouter 编程式导航跳转传参(点击按钮跳转路由和如何传递参数)
    Apache HBase概述(图文并茂~)
    基因组组装---Nanopore数据评估(nanoqc和NanoPlot)
    鼠标、键盘、窗口监听事件
    PyCharm中环境变量与系统不相通问题
    给爷肝!Alibaba架构师纯手工打造神仙级“2022版Java面试手册”
  • 原文地址:https://blog.csdn.net/weixin_45647721/article/details/127117070
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号