之前的那些博文都只是很粗糙的知识跟一些自己的练习而已,这次我将介绍一下自己用过的音频数据采集的方法:

1、AudioClip.GetData(a, b)

可以直接从AudioSource组件中的音频文件获取数据,不管是mute是否为true,还是volume为0都能获取到音频的数据,数据长度为第b个数据开始取样,长度为a个数据(最小为64个,关于这个可以去查查api)。

获取某一段音频:

float[] tempclip = new float[audiosource.timeSamples - TSamples];audiosource.clip.GetData(tempclip, TSamples);audiosource.clip = AudioClip.Create("newClip", tempclip.Length, 1, frequencyClip, false);audiosource.clip.SetData(tempclip, 0);

2.AudioSource.GetSpectrumData(a, 0,FFTWindow.BlackmanHarris)

通过音频组件获取音频数据,自由在mute为false,volume不为0的情况下才能获取数据(即:必须音频放出声音才能获取音频数据),a是数据长度(同上),0是声道数,FFTWindow是取样级别,级别越高取样越精确。用法类似于AudioClip.GetData(a, b)。

3.OnAudioFilterRead(float[] data, int channels)

这个是unity自带的方法,有点类似于Update()方法,不过这个方法会不断的获取全局的音频数据(当有多种音频同时播放时,会获取混合声音的数据,可以用做声音的合并)然后再流回去变为声音输出。data是取样数据组,固定为2048个;channels是声道数,默认是2个(即:data[0]和data[1]的数值是一样的)。

使场景全局静音,结合上面2种方法不管是mute为false,还是volume为1,都可以获取到音频数据:

private void OnAudioFilterRead(float[] data, int channels)
{for (int i = 0; i < data.Length; i++){data[i] = 0;}
}

同时可以改变音频的数据来达到变声的效果:

private void OnAudioFilterRead(float[] data, int channels)
{for (int i = 0; i < data.Length; i++){data[i] = data[i]*2f;}
}

除了我说的这些之外还有很多可以利用这些方法实现的功能,发挥你的想象力吧d=====( ̄▽ ̄*)b

unity3D学习之音频数据的采集要点-audio菜鸟笔记6相关推荐

  1. java代码视频数据和音频数据的采集

    我们经常用直播,但是直播怎么做呢?前面的文章已经搭建好了推流服务器,现在就让我们先从采集数据开始吧,然后压缩数据,然后推流数据等等,一步步来,一定会成个大胖纸的.加油! Activity.java p ...

  2. Unity3d学习之音频

    在游戏中,音效是必不可少的.游戏中的音频分为背景音乐和环境音乐两种. 背景音乐即贯穿全场的音乐,而环境音乐则是特定的,比如水流声,动物的叫声,只有你靠近时才能听得到的声音. unity3d中目前支持4 ...

  3. unity3D学习之音频播放 、实时变声简化版-audio菜鸟笔记5

    这是基于soundtouch写的一个实时变声的C#脚本,因为是调试版,所以可能会有BUG 核心代码: private void OnAudioFilterRead(float[] data, int ...

  4. Android 音频开发(二) 采集一帧音频数据

    这一节主要介绍如何采集一帧音频数据,如果你对音频的基础概念比较陌生,建议看我的上一篇Android 音频开发(一) 基础入门篇.因为音频开发过程中,经常要涉及到这些基础知识,掌握了这些重要的基础知识后 ...

  5. WebRTC 如何在安卓系统上采集音频数据

    目录 步骤一.获取麦克风权限 步骤二.音频采集模块初始化 步骤三.启动音频采集流程 步骤四.音频预处理 我们都知道音视频通讯的前提是采集本地的音频和视频数据信息.今天,我们就来了解一下 WebRTC ...

  6. 利用Web Audio API将振动数据转化为音频数据并播放

    年初在公司做了一个需求:传感器采集到了机器的振动数据,要在网页中利用这个数据播放出振动的声音. 之前只了解过HTML中的<audio>元素可以通过src属性指定音频文件路径来播放音频,现在 ...

  7. DirectSound播放PCM(可播放实时采集的音频数据)

    前言 该篇整理的原始来源为http://blog.csdn.net/leixiaohua1020/article/details/40540147.非常感谢该博主的无私奉献,写了不少关于不同多媒体库的 ...

  8. python学习音频-机器学习利用Python进行音频数据增强

    2019-09-24 机器学习利用Python进行音频数据增强 数据增强通常用于机器学习和深度学习,以便在训练产生大量数据后获得良好的性能. 在这篇文章中,我将展示如何用一些音频增强技术使用输入音频文 ...

  9. 《CCNA学习指南:数据中心(640-911)》——1.6 考试要点

    本节书摘来自异步社区<CCNA学习指南:数据中心(640-911)>一书中的第1章,第1.6节,作者: [美]Gary R. Wright(加里 R.赖特) , W. Richard St ...

最新文章

  1. 干货分享:自动驾驶核心技术进展之车用毫米波雷达
  2. 【Unique Binary Search Trees II】cpp
  3. mysql 之mvcc多版本控制
  4. SpringBoot拦截器不生效
  5. Django 出现 “multiple primary key defined”报错
  6. Python快速学习07:文本文件的操作
  7. 力扣--扁平化嵌套列表迭代器
  8. python输入hello输出olleh_leetcode上的python练习(6)
  9. ActiveMQ queue 代码示例
  10. Unity3D中JavaScript与C#对比
  11. ajax注册用户名为空,怎么用ajax和js检测用户名是否合法和不能为空
  12. Selenium UI自动化测试(五)WebDriver控制浏览器的操作
  13. 【关系抽取】详聊如何用BERT实现关系抽取
  14. 深度学习软件资源列表
  15. java可变参数学习
  16. java本地储存set_没有数据库的情况下,JAVA如何在本地保存信息
  17. cve20190708补丁的kb名称_kb4499175补丁下载
  18. 博士申请 | 新西兰梅西大学王睿俐教授招收语音识别和NLP方向全奖博士生
  19. 魔众视频管理系统 v3.4.0 常规优化 系统界面升级
  20. android 调用webservice实现手机号码归属地查询

热门文章

  1. RecyclerView的使用(二):添加头部和尾部
  2. 解决input中输入中文过程中会触发input事件的问题
  3. 蒙特卡洛方法(Monte Carlo method,也有翻译成“蒙特卡罗方法”)
  4. linux 内核源码下载网址
  5. mysql中字符串转时间戳_MySQL日期 字符串 时间戳互转
  6. 安卓Activity转场动画
  7. android 麦克风 动画,录音麦克风动画效果
  8. 互联网早报:滴滴正式启动造车,滴滴副总裁、小桔车服总经理杨峻负责
  9. python正则表达式入门
  10. linux sh解释器