11.3 开始使用软件无线收发设备
接下来,我们将分别在Windows和Linux操作系统上,看看要成功运行“软件无线收发”设备,一些作为先决条件的软件工具是怎么工作的。
11.3.1 在Windows操作系统上的下载与安装SDR#程序
在Windows操作系统中,首先介绍的能与RTL版和其他版的“软件无线收发”平台进行交互操作的流行工具是“软件无线收发#版”(SDR#),发音同于“SDRSharp”[1],是由Youssef Touil编写的。SDR#提供了一个直观的界面,可以用来浏览无线频谱,界面有“瀑布式”(waterfall)视图和“实时信号”视图两种。
SDR#的网址是http://www.sdrsharp.com ,这里可以下载最新版本的安装文件,是zip格式的压缩包,文件名叫作sdrsharp-install.zip。下载该文件后,解压缩,随便就可以运行解压后的install.bat批处理安装文件了。这个脚本将会从不同的网站自动下载几个库文件和可执行文件。这样做的目的是,该文件会下载可以整合多种“软件无线收发”设备的硬件,使其提供对SDR#软件的支持。
在Windows“资源管理器”中,导航到上面安装程序所创建的sdrsharp目录中,以管理员的身份启动zadiag.exe文件。该程序会让用户配置系统驱动程序,以便支持RTL版“软件无线收发”设备的使用。对用户来说,要完成这一操作,需要先单击“选项(Options)|列出所有的设备(List All Devices)”菜单,然后在界面下拉列表菜单中,选择“散装,接口(Interface 0)”(Bulk-In,Interface(Interface 0))的下拉列表项。这时的界面如图11-4所示。单击“安装驱动程序”(Install Driver)按钮,程序就会开始安装要与RTL版“软件无线收发”设备进行交换所需要的驱动程序。
♥ 提示
“SDR#软件支持通过插件方式增强工具的功能。一组由软件开发者提供的插件列表,发表在http://www.sdrsharpplugins.com 网站上,可供用户查阅使用。其实“频率管理器+扫描器”(Frequency Manager+Scanner)插件是由Jeff Knapp开发的,在保存有价值频率时所用的功能时必须用到这个插件,所以建议想要使用这一功能的读者,先下载并安装这个插件。
11.3.2 在Linux操作系统上的下载与安装gqrx程序
就像“软件无线收发#版”软件这样的Windows应用程序,在启动SDR设备的时候,都可以分别设置时间。然而,多数使用SDR设备进行信号分析和解码的工具,都假设你现在使用的操作系统是Linux操作系统。所以虽然后面的例子中,大多数的攻击目标是Linux操作系统的,但如果有可能的话,作为控制SDR设备的软件,我们会尽量介绍一些Windows操作系统上的工具使用的例子。
不幸的是,安装“GNU计划”中无线部分(GNU Radio)和其相关的库文件的文字描述,还有一连串的依赖程序和库文件,程序所使用的插件,插件所使用插件,其要安装的项目很多,且安装过程繁琐。这迫使许多人必须在两项操作中进行二选一的操作,或者是手工一件一件地编译一切他们感兴趣的程序、库文件和插件,或者在运行一些别人编译好的那些有可能落后的发布版本。不过,不要害怕,至少有一个只使用了短短的几条命令的,简单的配置方案是可供使用的。
首先,从http://www.ubuntu.com网站上下载和安装最新的64位Ubuntu操作系统的ISO映象文件。后面该映象文件可以作为一个Ubuntu的虚拟机使用,但这样做后,系统整体的性能会下降,另外,USB接口对高吞吐量适配器的支持开始变得挑剔,由于SDR设备也是基于USB接口的,所以这也会影响对SDR设备的支持。因此,不建议以虚拟机的方式使用Ubuntu操作系统。
有了Ubuntu操作系统,下一步就是在Ubuntu系统中添加一个第三方程序包文件,这个程序包文件由Alexandru Csete提供技术支持。这个人同时也是gqrx程序的作者,而这个gqrx程序(我们随后将使用到)是一个基于UNIX的多种操作系统下的SDR设备工具。程序的界面将在下一节中出现。这个程序包所在的站点经常会更新这一程序包,有的时候频率甚至比官方的Ubuntu程序包还频繁。这个程序包可以让你轻松地在Linux操作系统上,安装和配置RTL版SDR平台和HackRF版SDR平台。
其次,就是更新软件包列表,安装以下软件包到安装了SDR平台的目录中。
现在,你终于有了一个稳定的,相对最新版本的,也几乎就是最新版的,可以用于“软件无线收发”分析的全部东西了。这对Linux系统来说,是一种罕见的壮举!
♥ 提示
你也可以试着去找一个“GNU计划”中无线部分的LiveDVD程序,进行一个快速的,无初试经验的程序包安装生成体验,以便熟悉这种通过短短的几条命令的简单配置方案。LiveDVD程序的下载地址是http://gnuradio.org/redmine/projects/gnuradio/wiki/GNURadioLiveDVD 。
安装了核心的,与SDR相关的软件之后,我们首先要做的事情就是确认RTL版的SDR设备能正常运行。这一步很容易,只要运行rtl_test命令就可以轻松验证:
⊗ 注意
上面代码中,最后一句的内容是:如果在这儿之后,没有看到更多的输出内容,那就说明你的RTL版的SDR设备安装正确。
♥ 提示
在11.2.1节的最后提到,RTL版的SDR设备的“主业”是收看多国多地的电视信号,所以有一些版本的Ubuntu操作系统会天真地以为你真的想用RTL版的SDR设备来看电视。因而Ubuntu也会“自作多情”地自动加载该设备的驱动程序,这种“画蛇添足”的行为最终会导致驱动程序访问上冲突。如果你遇到了此类问题,简单的处理办法是通过“rmmod dvb_lisb_rt128xxu命令简单地卸载由Ubuntu操作系统安装的驱动程序。
测试程序rtl_test是一个不会停止工作的程序,该程序在运行后会一直处于测试状态,所以一旦你认为你已完成了测试工作,按Ctrl+c组合键中止当前的测试工作。在RTL版的SDR设备上,一次只能同时使用一个应用,另外,我们也要记得,在RTL版的SDR设备上有一个轻微的小毛病(slightly buggy),即当你关机的时候,偶尔会看到一个“数据段操作失败”的错误,即segfault错误。另外,如果你的设备停止响应,重插一个USB软件狗再试一次,一般问题就可以解决。如果重插设备后问题仍然存在,那就要考虑重新启动你的SDR系统。
⊗ 注意
⛳网站
如果你只能够以root用户的身份运行rtl_test程序,那么你需要安装一个Linux操作系统中的“设备管理器”,名叫udev,这其实是一个以“rules”为扩展名的配置文件,从该扩展名上可以看出,该配置文件中保存的应该是一些“规则”。对于RTL版的SDR设备,其“规则配置文件”名叫rtl-sdr.rules,读者可以从本书的配套网站上下载,网址是http://www.hackingexposedwireless.com/files/11/rtl-sdr.rules。下载后的文件直接复制到“/etc/udev/rules.d/”目录中,然后再运行“udevadm control--reload-rules”命令加载该规则。
如果你足够幸运地拥有一款HackRF版的SDR设备,那么该设备也有一个简单的工具,你可以如法炮制地使用这一工具验证该设备与计算机之间的通信。这个与HackRF版的SDR设备进行通信的工具,名叫hackrf_info。
一旦验证试验是成功的,那么你就可以在“命令提示符”中运行gqrx工具了。这个命令的运行权限并不局限于root用户,非root用户也可以使用。与Windows操作系统上使用SDR设备的SDR#程序相比,gqrx程序不仅提供了所在SDR#程序的功能,而且还支持其他有用的功能,具体将在本章的后面内容中进行探讨。
⊗ 注意
如果你在使用Linux操作系统上的“音频”方面有什么问题,那就趁着现在先搞清楚了。不然,在下一节中,我们将直接使用你的“耳朵”[2]去寻找你所在区域内的信号。
11.3.3 使用SDR#和gqrx程序扫描无线频谱
接下来,我们研究如果通过Windows操作系统下的SDR#程序和Linux操作系统下的gqrx程序,对各种无线信号进行分析。
通过RTL版的“软件无线收发”设备,我们要做的第一件事就是监听当地的“调频广播电台”(FM radio station)。这是一个开始的好地方,因为几乎每个人都生活在一些调频广播电台的信号覆盖范围之内,它们都位于全国一致的频率[3]。
SDR#程序和gqrx程序的界面一致,主界面都是由四个主要的“用户界面”元素(User Interface element)组成。其中“音量控制/调谐器”(volume control/tuner)突出位于顶部,我们不妨称之为“1区”。而这些功能都如预期所料,是一个收听调频广播的最基本功能。在左边的一列,是无线配置区,不妨称为“2区”。在这里,主要是由你告诉程序要接收什么类型的信号。现在,输入一个当地的调频广播站调频号码,设置无线“宽带调频”(Wide FM,WFM)。在图11-5中,我们收听的广播是WBRU95.5的调频广播,当地的一个另类摇滚电台,设置完上面的操作以后,按“播放”按钮或“电源”按钮,就可以开始收听了。
“快速傅里叶变换”(Fast Fourier Transform,FFT)区显示的是你的RTL版的SDR设备不停地采集到的“振幅”(amplitude)和“频率”的显示值。不妨称该区为“3区”,其中的竖线(即“3区”正中的黑线),表示的是当前调谐到哪个电台的频率。下面是瀑布显示区,不妨称为“4区”。在这里,显示的是接收信号的历史过程,以时间为单位。当试图找到一个无线电信号时,“3区”和“4区”的数据都被证明是有用的。
虽然我们还没有讨论“频率”和所用的单位“Hz”(中文名也写作“赫兹”),然而,在前面的内容中已多次遇到过这些术语。现在,我们需要知道的是:对于一个信道的“频率”,是电台在使用之前分配到然后由电台告诉我们的。“Hz”,全称是Herz,只是“频率”的单位,一个调频广播电台会占据的一小段频率。以上面的WBRU 95.5为例,虽然95.5MHz是WBRU广播所指定的中心频率,但在实际的传输中,这个频率实际占用的宽度大约100KHz,换句话就是0.1MHz,在以95.5MHz为中心,向两边方向上偏移。这也是为什么电台的调频频率从来都不用偶数结尾的原因[4]。
另一个要注意的事项,就是多个调频电台都在不停地对外广播。而SDR#程序和gqrx程序一次只能解调一个电台的广播。通俗地讲,就是一个这样的设备,一次只能收听一路广播信号。但这并不是程序和SDR设备的限制,这只是因为这个程序并不起让你同时收听多个流。其实只要程序稍做修改,你就可以产生额外的线程,来同时收听多个,甚至是所有的电台!
当然,费这么大的劲,如果只是听听收音机信号,那就不值了,因为直接买个收音机,就可以以更容易的方法听调频广播电台了。然而,我们特意使用的是SDR设备,这是因为相比于收音机,你可以读取到其他无线电系统不容易找到的频率,比如“广播式自动相关监视”(Automatic Dependent Surveillance-Broadcast,ADS-B)中的无线信号。
⚡ 通过dump1090工具解码“广播式自动相关监视”系统
首先我们使用专用的应用程序与RTL版的“软件无线收发”(SDR)设备进行通信,这个专用程序就是dump1090。这个程序是由Salvatore Sanfilippo编写的,作者其实在黑客界还有一个更响亮的名字,叫做antirez。从dump1090这个名字来看,1090应该是得名于频率值,因为飞机通常都使用1090MHz的频率发送自己的位置和航班号,与地面空管基站进行通信,而这个程序又与“广播式自动相关监视”[5]息息相关。你必须手工下载和编译dump1090手,不过这个很简单,操作步骤如下所示:
命令中的“--interactive”标志会让dump1090程序输出一个标准格式化的ASCII表,“-net”参数会让程序关联到8080端口,而该端口是“Google地图”(Google map)软件所用的端口。
♥ 提示
一些航班不发送“纬度”(latitude)和“经度”(longitude)信息。所以有时即使你看到有某个航班的消息弹出,但却看不到该航班相关的坐标或航班号。
上面输出的这张表格中,有很多信息是相当令人印象深刻的,这些内容真的是从稀薄的空气中主动以“拉”(pull)的方式读取出来的吗?但是“一张图片胜过一千句话”。打开http://127.0.0.1:8080 ,随后你确实看到了飞机实时的跟踪信息,如图11-6所示。
dump1090工具的工作就是解调飞机以1090MHz频率上发出的“广播式自动相关监视”信号。这些信息会被该飞机信号发射功率覆盖范围内的其他飞机以及地面站所使用。数据没有加密,所以很容易在数英里以内接收到,甚至在室内,只要是带有天线,无论是RTL版的SDR设备,还是HackRF版的SDR设备都可以收到!
接下来,让我们特别关注一下SDR设备的另一个功能,那就是捕获业余无线电爱好者的短信信号。
⚡ 通过gqrx程序解码“自动分组报告系统”协议
“自动分组报告系统”(Automatic Packet Reporting System,APRS)协议大致相当于业余无线电爱好者之间的“手机短信服务”(Short Message Service,SMS)协议,是1993年在“业余无线电频段”(Ham radio band)发送短的基于文本消息(short text-based message)而设计的一个无线协议。通过该协议所发的数据包可以在“中继器”(repeater)补发以后,最终连接到互联网,甚至连接到到国际空间站上!
不幸的是,大多数“自动分组报告系统”的通信数据包的内容都很无聊。那些业余无线电爱好者们,虽然主观上他们一般都很友好,并且没有任何恶意,但却喜欢使用“自动分组报告系统”做一些意义不大的任务。比如通过“自动分组报告系统”不停地向外发送汽车所在的位置,以便让每个人都知道他们的座驾在哪里。通常,他们所有被跟踪的对象本来应该是不停移动的才有意义,但在很多情况下被跟踪的对象都是固定的,并且有的时候一停就是几个小时。还有一些人,喜欢做一些更实际,也更刺激的事,就是使用“自动分组报告系统”来跟踪高空的气象气球。每天早晨,这帮人就开始像赛车一样,在一辆装满电子仪器的车里狂追气球的行踪,一直到他们的气球飞得临近外层空间无法追踪为止。当地的“无线电俱乐部”(radio club)可能更愿意带你去参加他们的下一次探险,并且偶尔会提醒你,他们的车现在还停在停车场外面,以此来炫耀他们的“自动分组报告系统”正在工作中,并且车上装满了各种电子仪器。
在美国北部,你可以在144.39MHz的频率上看到有“自动分组报告系统”数据包的发送。幸运的是,gqrx工具有一个内置的AFSK1200解调器模块,这意味着你可以简单地调谐到144.39MHz,然后选择“窄带FM”(Narrow FM,NFM)模式,再单击软件“工具(Tools)|AFSK1200解码器(AFSK1200 Decoder)”菜单项。那么随后,当设备接收到“自动分组报告系统”信息的时候,这些信息就将被解码出来,并显示在屏幕上,如图11-7所示的是在“北纬39.2148,西经76.4991”(即图上“3921.48N/07649.91W”)位置处捕获到的“自动分组报告系统”数据包。
♥ 提示
记住:RTL版的SDR设备可能会有频率的漂移,所以在使用“瀑布”视图查看附近无线电爱好者所发送的数据的时候,数据会略有偏差!
有时你可能会发现,在你的程序的“自动分组报告系统”解码器窗口中,一直是空空如也。如果你想接收到这些“空野来信”,你就需要从下面几处建议中排查没有收到的原因。
·拨弄一下增益,调调看其他值的情况下是不是能收到什么数据。当有“自动分组报告系统”信息出现时,SDR设备会有很明显的“嗞…嘀…噢…喀”(Squee-awwwwwk)的声音出现。调一会儿增益,正常情况下,你总是能听到一个的。
·换另一副更好的天线,或者是将天线的头朝向山外没遮挡的方位。
还是没有收到吗?查看http://aprs.fi网站,看看你所在的区域内是否有无线站点。
一旦你开始收到一些“自动分组报告系统”的消息,你就可能想进一步解码这些信息,最好是能将显示的消息中包含有GPS坐标的信息,都以加亮的方式显示。这样的工具也有不少,比如Dire Wolf软件,它的网址是https://home.comcast.net/~wb2osz/site ,另外还有Xastir软件,它的网址是http://xastir.org/index.php/Main_page ,都可以从接收到“自动分组报告系统”数据包中,提取地理位置信息,并且可以将这些信息按这些地址绘制在地图上,甚至如果你有正确的硬件和无线电许可证,对方会要求你回传一个回执信息。
虽然通过gqrx工具,可以将“自动分组报告系统”消息直接接收和解码,但是作为“自动分组报告系统”协议本身,对于业余无线电爱好者来说,还是有一些限制的。而另一个相似的,具有与“自动分组报告系统”差不多的功能,但却被更广泛地使用的协议叫作“传呼网络”(pager network),对于公众来说,更加普及,而且值得高兴的是,我们的SDR设备也仍然可以访问这种协议。
⚡ 对传呼信号进行破解
我们最后要解码的数字信号,就是“POCSAG传呼”(POCSAG pager)通信数据包,其全称是“基于‘邮局代码标准化顾问组’的传呼业务”(Post Office Code Standardization Advisory Group pager)。寻呼机仍被广泛地运用在医疗和工业领域中[6],所以对于黑客来说,这仍然是一个很好的机会,通过传呼,你可以从而在家里,就能听到一些外边人相互发送的传呼内容。只要你能捕获到这些数据包,传呼的信号很容易识别和解码。由于传呼的使用频率范围在不同的地理位置有显著的差异,所以你不得不需要到处寻找传呼可能使用的信号。可以搜索的频率有如下几种:
·.152~163MHz,这段频率被称为“甚高频”(Very High Frequency,VHF)
·.454~465MHz,这段频率被称为“特高频”(Ultra High Frequency,UHF)
·.929~931MHz,这段频率被称为“特高频”(Ultra High Frequency,UHF)
幸运的是,“邮局代码标准化顾问组”协议有一个非常独特的波形和声音效果。当你听到“哔…嘟,哔…嘟”(Bee-d
h)的声音的时候,就说明你现在有“窄带FM”(NFM)音频解调信号。将信号通过“快速傅里叶变换”(FFT),信号就会变成“蝙蝠耳朵”的形状,在信号的两端有两个明显的峰值,通过gqrx程序,其显示效果如图11-8所示。
在gqrx工具中,内置了一个“自动分组报告系统”解调器,但在作者所用的“软件无线收发”设备中,并没有配置对“邮局代码标准化顾问组”码的解调支持。不过,这个问题也不大,我们可以将这些音频通过UDP协议传送到另外具备对该协议进行解调和转换的软件工具上。整个操作的过程的概述如图11-9所示。
一旦我们发现了有通过“邮局代码标准化顾问组”协议传输的信道频率,我们需要将这个信道上捕获的音频数据流,通过UDP协议转发出去。要完成这个操作,我们在gqrx软件的“音频”(Audio)选项卡(在前面gqrx程序主界面的右下角),然后单击“音频设置”(Audio Settings)按钮(就是那个“扳手和螺丝刀”图标的按钮),然后选择一个端口,默认的端口值为7355。然后我们单击界面上“两台电脑”的图标开始在本地以“广播”(broadcasting)的方式发送音频流。你可以通过Netcat程序(其命令是“nc”命令)进行测试,使用时,将该命令连接到上面指定的端口即可工作,其操作实例如下所示:
因为上面gqrx程序和multimon-ng程序分别由不同的作者编写的,我们必须改变程序音的采样率,以便两个程序可以统一参数。尽管gqrx程序输出音频频率是48个“每秒千次采样值”(KSPS),而multimon-ng程序希望运行在22050“每秒采样值”(SPS)。命令行工具sox可以完成这种转变。不过,在使用这个程序之前,必须首先安装了sox数据包:
sox安装好以后,我们就可以通过该工具将gqrx的输出转换成通过UDP发送的数据包,其命令格式如下所示。
这个命令的前一半是告诉sox程序以“原始(raw)的16位有符号整数”值[7]的形式从“标准输入设备”(stdin)[8],以48000Hz的采样率进行采样。这里的“原始”采样,指的是所采用的音频值没有头部数据,直接全部都是音频采样值,就像我们在wav文件或mp3文件中[9]保存的那样。命令的后半部分是告诉sox程序以“16位有符号整数”值的形式从“标准输出设备”(stdout),以22050Hz的采样率进行输出,同样,发送的时候,采用原始没有头部数据的格式。最后,我们在multimon-ng程序中,接收由sox程序输出的数据,作为自己重新采样的数据。
multimon-ng是一个命令行实用程序,是由Elias nal编写,该程序可以解调许多不同的数字信号。要使用这一工具,我们需要下载和编译该程序的源代码,然后安装编译后的二进制可执行文件。其步骤如下所示:
multimon-ng程序的执行实际上是相当简单的。我们只是告诉该程序希望使用原始格式进行采集(即“-t raw”参数),并且是从“标准输入设备”作为输入源(这是通过单独一个减号“-”作为参数),而且在命令中,给出了一组尝试潜在的调制参数列表。在这组列表中,程序会依次尝试这些组参数,遇到成功即停止随后的尝试,或全部都不成功则退出。“邮局代码标准化顾问组”支持三种信息格式的解码,对于每种格式,multimon-ng程序都有相应的解码模式:
如果我们把所有上述命令集中到一行中操作的话,就会生成一个超长的命令行。这时,这个命令行的格式将如下所示。
注:在10.3.3节中提到,shell命令中的“\”表示的是转义符,而该符号后面紧跟回车的话,表示的是当前这一段和下一段的内容是连接在一起的,不仅这个“\”转义符不属于shell命令的一部分,随后的“回车”也不是命令格式的一部分。你可以将“\<回车>”理解为只是显示格式上的优化,在命令执行的时候,该符号都将被去掉。——译者注一旦mulLimon-ng程序正常运行,它就会打开一个简单的示波器(oscilloscope)界面显示从输入接口中采集到的数据。下面显示了一个有效的输入信号所展示的示波器界面效果,该图上起伏的波形,正是通过gqrx程序选定的频率后,捕获到的音频频率的一个实例效果。
运气好的话,在你程序的界面上将会开始出现滚动的页面。一个传呼数据捕获的实例,内容如下所示,考虑到隐私问题,内容中,部分与技术无关的敏感信息和累赘的冗余信息都经过了编辑,比如,有些都以“XXXXXX”显示,有些以“…”省略掉。
如果你做到了这一步,那么就祝贺你了!没有这些专业的硬件,你能将模拟的无线电波想尽办法转换到ASCII数据的格式,也都是徒劳的。这不是故意要嘲笑大家,看看上面流程中所要求的所有步骤,我想你会支持我的说法的!
在本章的开始,我们就陷入,然后跳过了一些关键的概念。通过这些术语讨论SDR设备上的技术问题是件很“酷”(cool)的事情。深入了解这些概念对于更好的掌握SDR设备能做什么,不能做什么,做某事可能会出现什么问题等方面,都是一个关键的因素。
- 软硬件的版本号通常没有硬性规定,所以导致其形式多样,但就某一个具体软硬件版本来说,一般都是有规律的。例如有些系列,某一版本的加强版就是在当前版本后面加一个“+”号,而再加强的版本,就是后面跟上“++”,但没有人画蛇添足地使用“+++”作为后续累赘的版本号,于是有人想出把两个加号交叉重叠使用,于是“#”符号就出现了。并且有些系统跳过了“+”和“++”,直接将“#”作为其加强版的版本号,本处大概也是这个意思。这个符号的英文发音等同于英文单词sharp的发音,中文俗称“井号”。——译者注
- 这里的“音频”和“耳朵”都各有两层含义。其一,SDR设备的本来作用是接收无线广播信号,所以这里的“音频”指的是调频广播信号,而“耳朵”就是我们听音乐的耳朵;其二,实际上,我们使用SDR设备来接收无线信号,所以这里的“音频”泛指各种无线信号,而“耳朵”当然指的就是SDR设备本身。——译者注
- 这个说法只能说是美国的特点,由于调频的覆盖范围很有限,一般都是几十公里的范围,所以中国基本上是以城市为单位,而不是以省为单位,更不会全国统一,每个城市都有自己独立的调频系统。即使两个城市使用了同一个频率,其内容也是完全不一样的。——译者注
- 严格地讲,所有的调频FM频率都是偶数。只是如果以0.1MHz(即“十万赫兹”)为单位的时候,才具有“不是偶数”的特点,但这也只是美国调频FM的特点(每个信道占用200KHz的带宽,所以只要有一个是奇数,则所有都是奇数)。中国的调频不存在这样的特点,比如上海的“海上戏剧频道”的调频是92.4MHz。——译者注
- ADS-B主要应用场景是航空器之间,或与地面之间进行数据传输的协议。所传的数据包括空域交通、天气、地形等飞行信息,让机组人员清晰地了解周边的交通情况,提高情景意识,并可用于航空公司的运行监控和管理,为安全、高效的飞行提供保障。——译者注
- 上面说的是在美国的现象。在中国,传呼仅仅在上世纪的最后十年和本世纪的最初十年盛行过20年,随后就因手机的普及而迅速消失。——译者注
- 这时的“16位有符号整数”是声音的分辨率,16位共可表示216种声音量化的值。——译者注
- 在音频采集领域,“标准输入设备”指的是声卡的标准输入接口。至于这个接口上插的是什么则要看用户自己的需要,家庭台式计算机一般插的是视频聊天时使用的话筒,有些还可以插入一些电子音乐设备(如带midi功能的电子琴)。后面的“标准输出设备”,同理指的是声卡的标准输出接口,通俗地讲,就是我们平时插耳机或音箱的那个接口。——译者注
- 无论是wav文件,还是mp3文件,本身都是有文件头的。但这里指的不是文件本身的头部,而是指这两种文件的音频内容中,每组音频的头部。——译者注
本书评论