- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在我的 Android 应用程序中,我正在录制用户的声音,并将其保存为 .3gp 编码的音频文件。
我想做的是打开它,即表示音频样本的序列 x[n],以便执行一些音频信号分析。
有人知道我该怎么做吗?
最佳答案
您可以使用 Android MediaCodec解码 3gp 或其他媒体文件的类。解码器输出是标准 PCM 字节数组。您可以直接将此输出发送到 Android AudioTrack 类进行播放或继续使用此输出字节数组进行进一步处理,例如 DSP。要应用 DSP 算法,必须将字节数组转换为浮点/ double 组。获取字节数组输出有几个步骤。总而言之,它看起来如下:
实例化 MediaCodec
String mMime = "audio/3gpp"
MediaCodec mMediaCodec = MediaCodec.createDecoderByType(mMime);
创建媒体格式并配置媒体编解码器
MediaFormat mMediaFormat = new MediaFormat();
mMediaFormat = MediaFormat.createAudioFormat(mMime,
mMediaFormat.getInteger(MediaFormat.KEY_SAMPLE_RATE),
mMediaFormat.getInteger(MediaFormat.KEY_CHANNEL_COUNT));
mMediaCodec.configure(mMediaFormat, null, null, 0);
mMediaCodec.start();
从 MediaCodec 捕获输出(应该在线程内处理)
MediaCodec.BufferInfo buf_info = new MediaCodec.BufferInfo();
int outputBufferIndex = mMediaCodec.dequeueOutputBuffer(buf_info, 0);
byte[] pcm = new byte[buf_info.size];
mOutputBuffers[outputBufferIndex].get(pcm, 0, buf_info.size);
这Google IO talk可能与此相关。
关于java - 如何读取 3gp/AMR-NB 音频格式的原始值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14267707/
我们需要使用 eConnect 将应用程序中的数据集成到 GP。我们在服务器中安装了 GP 和 eConnect。我们的应用程序从另一台机器运行,该机器必须使用 eConnect 将数据发送到我们服务
我已经定义了 arity 1 的几个函数,比如说 func1(-)和 func2(-) .我已经对它们进行了测试,发现它们确实在做它们应该做的事情。 我想定义第三个函数,比如说 func3(-) ,
我已经定义了 arity 1 的几个函数,比如说 func1(-)和 func2(-) .我已经对它们进行了测试,发现它们确实在做它们应该做的事情。 我想定义第三个函数,比如说 func3(-) ,
我正在使用 eConnect 在 Dynamics GP 中创建和更新各种项目,但我似乎无法找到如何使用它从 GP 读取数据。 例如,我想从 GP 获取供应商和帐户列表。有没有办法从 eConnect
大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 高斯过程算法是一种强大的非参数机器学习方法,广泛应用于回归、分类和优
我正在尝试使用多维输入数据在 GPFlow 中实现多输出 GP。 我从this issue看到了在 GPflow 中,通过“定义多维基础内核,然后在其上应用核心区域”,可以实现多维输入。 我已经编写了
使用 $gp 是否存在危险?注册以存储值?我想我的问题是 $gp 的真正功能是什么?它是否以某种方式在幕后调用,以便如果我使用它,事情可能会变得非常非常错误? 最佳答案 那么,$gp register
如何在PARI/GP中创建跨越每个级别的多行的嵌套循环?我经常需要在循环中做很多事情,并且出于可读性的考虑,我不喜欢在单行上编写循环。对于一个变量的循环,我一直在这样做: for(i=1,10,{
这个问题的灵感来自 Reddit question in r/osdev除了这个问题集中在SS寄存器上。有人可能会说 RTFM(ISA 条目 MOV ),但当这个问题出现时,即使在操作系统开发人员中也
这是WGAN-GP的损失函数 gen_sample = model.generator(input_gen) disc_real = model.discriminator(real_image, r
我使用稀疏高斯过程进行 Rasmussen 回归。[http://www.tsc.uc3m.es/~miguel/downloads.php][1] 预测平均值的语法是: [~, mu_1, ~, ~
我知道在GP中,与SVM不同,kernel是衡量一个点与给定点之间的相似度。但是,是否有内核选择的通用指南?或者有没有介绍流行内核(如平方指数内核)特性的资料? 顺便问一下,Lin 博士(LIBSVM
我最近偶然发现了Tiny GP(一个遗传编程程序),我发现它非常有用,所以我决定将程序中的所有System.out.println()更改为写入文本文件方法。 问题:在文本文件中,由于某种原因,只显示
我创建了一个实现 ProcessGroupPolicyEx 的组策略扩展。当我收到组策略时,我会成功收到通知。 但是,我不知道如何从 GPO 内部阅读政策。 example在通过 GPO 循环时停止:
我正在尝试编写一个 64 位操作系统。它从定时器中断处理程序在 iretq 上抛出一个 GP,然后从 GP 处理程序的 iretq 重复抛出更多的 GP。 我知道这是因为我的通用处理程序在串行端口上打
我开发的 Web 应用程序使用 eConnect 与 Dynamics GP 进行交互。具体来说,当通过我们的在线商店处理订单时,我们会使用 eConnect 将发票提交给 GP。 我们的一些客户是在
您能否告诉我用于将数据从 Azure 逻辑应用插入 Dynamics GP 数据库的适配器/连接器? 最佳答案 遗憾的是,Dynamics GP 尚未得到开箱即用的支持。目前唯一的选择是使用自定义连接
我正在尝试使用 GPflow 进行多维回归。但我对均值和方差的形状感到困惑。例如:应该预测形状为 (20,20) 的二维输入空间 X。我的训练样本的形状为 (8,2),这意味着两个维度总共有 8 个训
这是我的图片。 我现在不知道,我做错了什么。 我今天购买了开发者控制台的访问权限 - 一切正常,但图像不工作...... 屏幕截图现在是一半大小,但没有帮助...... 我现在不知道该怎么办。 我已经
我正在研究在 PyTorch 中使用带有梯度惩罚的 Wasserstein GAN,但始终得到大的、正的生成器损失,并且随着时间的推移而增加。 我从 Caogang's implementation
我是一名优秀的程序员,十分优秀!