iPhone音频开发之:转换和录音(第二部分)

本文介绍了如何在Mac上使用内置命令行工具afplay、afconvert和afinfo进行音频文件的播放、转换和信息查看。此外,文章还指导读者如何通过GarageBand或Audacity制作音乐和声音,包括如何导出并准备适合应用使用的音频文件。

这篇文章是这个系列(涵盖iPhone开发者感兴趣的音频主题)的第二篇。

在这个系列的 第一篇文章中, 我讲解了文件格式和数据格式的区别,还有哪些格式是在iPhone上面支持的。现在,让我们讨论一下你怎么样在不同格式之间转换。

(传送门: 本系列第三篇s, 我们将学习怎样在iphone中播放这些声音.)

Afplay, AFConvert, and AFInfo

转换音频在Mac是相当简单的,因为在Mac上有三条内置的命令行工具:afplay、afconvert、afinfo。

使用最简单的是afplay,仅需要在终端里输入你的音频名字,它将会播放。当在听不同比特率下的压缩音频文件有什么差别时,这是相当方便的。

接下来是afinfo, 仅需输入你音频的名字,之后就可以看到这份文件的文件格式、数据格式、比特率和其他一些有用的信息。例子如下:

afinfo pew-pew-lei.caf 
File:           pew-pew-lei.caf
File type ID:   caff
Data format:     1 ch,  44100 Hz, 'lpcm' (0x0000000C) 
    16-bit little-endian signed integer no channel layout.
estimated duration: 0.560 sec
audio bytes: 49408
audio packets: 24704
audio 24704 valid frames + 0 priming + 0 remainder = 24704
bit rate: 705600 bits per second
packet size upper bound: 2
audio data file offset: 4096
optimized
sound check:
    approximate duration in seconds          0.56
----

上面的例子向你说明了这份文件的文件类型是CAF,数据格式是16位低字节序有符号整型(LEI16),采样频率是44100Hz,比特率是705600比特/秒。

最后,让我们讨论下里面最好的工具:afconvert。afconvert使用相当简单,只需要一个像下面的命令行:

afconvert -d [out data format] -f [out file format] [in file] [out file]

因此将一份文件转化为iPhone首选的无压缩音频编码(提醒:linear PCM的低字节序整型16位转化,也就是LEI16(the little-endian integer 16-bit variant of Linear PCM)),和iPhone首选的文件格式(提醒:核心音频文件格式,也就是CAFF),你可以输入如下命令行:

afconvert -d LEI16 -f 'caff' input_file.xxx output_file.caf

注意:我没有指出这个输入文件的扩展名,因为afconvert可以智能地检测音频文件的类型并且做相应的转换,因此输入的文件可以是任何数据格式和音频文件格式的文件。

O还有一点需要注意:你可以在输入或者输出文件之前增加一个“-b”的选项来设置比特率。因此就像这个例子,我们使用32bit/sec来保存这个文件,然后使用128bit/sec来保存:

afconvert -d aac -f 'caff' -b 131072 background-music-lei.caf test_128.caf
afconvert -d aac -f 'caff' -b 32768 background-music-lei.caf test_32.caf

在Mac上面录制音频文件

我想略记下两条关于在Mac上面为你的应用制作音乐和声音的好方法。

第一,需要GarageBand。GarageBand可以轻松的把一些预先准备好的鼓声、吉他声和一些其他的乐器声音组合到一起成为一小段歌曲。假如你很喜欢音乐,你可以自己边玩边录一些音乐,并且做一些很酷的东西。

Garage Band Screenshot

假如你还没准备好,还不怎么了解,你可以花一些时间来了解一下 Apple 的GarageBand教程 . 我发现特别是 “Using Built-In Software Instruments” 这章最有用。

假如你觉得你的歌很好,你可以将它导出上传到iTunes,然后选择”Reveal in Finder”来获取你的文件以备将来使用。

我发现GarageBand 不是一个用来记录简单音效的最好工具。因此,我更喜欢一个很棒的免费音频程序,叫 Audacity. 你可以插上你的麦克风(我用我的Rock Band麦克风,它工作得刚刚好!),记录你的声效,并能很简单的保存下来。

Audacity Screenshot

不要忘了当你像这样制作你自己的声音的时候,你们最可能使用16位高字节顺序有符号整型来存储,或者使用“BEI16”来储存。因此,不要忘了在将它们包含到你的程序之前转换到LEI16。

假如你发现你自己没得很好的艺术细胞,这里有一些音效在免费声音项目 里有Creative Commons许可证,或者你可以雇佣一个专业人员!


基于径向基函数神经网络RBFNN的自适应滑模控制学习(Matlab代码实现)内容概要:本文介绍了基于径向基函数神经网络(RBFNN)的自适应滑模控制方法,并提供了相应的Matlab代码实现。该方法结合了RBF神经网络的非线性逼近能力滑模控制的强鲁棒性,用于解决复杂系统的控制问题,尤其适用于存在不确定性外部干扰的动态系统。文中详细阐述了控制算法的设计思路、RBFNN的结构与权重更新机制、滑模面的构建以及自适应律的推导过程,并通过Matlab仿真验证了所提方法的有效性稳定性。此外,文档还列举了大量相关的科研方向技术应用,涵盖智能优化算法、机器学习、电力系统、路径规划等多个领域,展示了该技术的广泛应用前景。; 适合人群:具备一定自动控制理论基础Matlab编程能力的研究生、科研人员及工程技术人员,特别是从事智能控制、非线性系统控制及相关领域的研究人员; 使用场景及目标:①学习掌握RBF神经网络与滑模控制相结合的自适应控制策略设计方法;②应用于电机控制、机器人轨迹跟踪、电力电子系统等存在模型不确定性或外界扰动的实际控制系统中,提升控制精度与鲁棒性; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,深入理解算法实现细节,同时可参考文中提及的相关技术方向拓展研究思路,注重理论分析与仿真验证相结合。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值