An image to describe post 谈谈战斗机语音通讯系统的设计,兼与“得到”商榷

图片来源:Pixabay.com

前几天,在池建强老师的公众号文章里看到这样一段,我以为值得好好探讨下。

今天早晨听李翔内参,有个故事很有意思,是个战斗机通信的例子

战斗机队在交战时,彼此之间的数据链传输(可以理解为无线网络传输)的带宽是非常有限的,因此,飞机的数据链在使用时,其传输速率常常被限制在某个速度以下,比如100K/秒,而飞行员在互相语音沟通和进行战场态势信息传输时,既要让传输的内容表达清楚,又要符合 100k 的限制,这就催生了很多专有的空战通信术语(有点类似于1970年代时普遍使用的电报),飞行员需要用非常精炼、没有丝毫冗余的语言来表达要传输的信息。这么做反而降低了他们在沟通时的语言负担,提高了沟通效率。

你看,世界没有给我们成功的钥匙,不过给了各种限制条件,如何利用这样的条件,做出属于你的钥匙,应该就是我们的宿命。

池老师想说明“创新不应当受条件限制”,这我当然是赞同的。但是拿得到的例子来论证,似乎有点不太对头——因为“数据传输速率有限“,所以“战斗机飞行员说话需要特别精炼,乃至发展出一整套空战通信术语“,这个逻辑我没法同意。

为了验证池老师的表达是否与原文一致,我专门去听了“得到”的音频,确实如此,在《如何在“限制”中发挥创造力》专门举了这个例子。然而,无论是基于我已有的知识,还是从软件系统的常理来分析,这种逻辑都是有问题的。为验证我的怀疑,我专门查了下资料,做了点功课,下面是我的分析。

战斗机飞行员说话必须要精炼,这个要求非常重要。因为战场上情况瞬息万变,容不得缓缓道来。

通常来讲,飞行员的通讯必须保持三个特点。第一是简练,太长的常用语必须有固定缩略,比如RTB,表示Return To Base;第二是准确,为了准确在三维空间里描述方位,飞行员会采用表盘描述平面访问,再加高低,比如“12'O clock high(12点上方)”表示正前方上方,“3'O clock low(3点下方)”表示右侧下方,如果敌人在6点出现就得高度紧张,这意味着被咬尾了;第三是避免出错,比如用alpha表示A,beta表示B,hotel表示h等等(中文里用“拐”表示7,用“洞”表示0也是这个道理)。这几点,基本是所有国家都通用的。

问题在于,这套话语形成已经很久了,大概从二战时候就基本定型,一直延续至今。最早时候,飞行员之间的通讯还是模拟方式。我从来没听说过,因为切换到数字通讯方式,导致飞行员要改用一套全新的沟通话语。

从逻辑上判断,这也不可能。语音通讯数字化的进程已经很久了,但一直没有全部完成,因为兼容性很重要。同样不容忽视的一点是,模拟通讯的语音通话方式一直保留着,作为数字通讯的备份。如果在空战中,飞行员说话之前还要先看看当前是用模拟还是数字通讯,这基本不现实。

当然,从另一方面来讲,现代军用飞机确实越来越多使用数据链来进行通讯。

随着空战和飞机的日益复杂化,语音已经不堪重负了。比如“前方20公里有五架敌机,长机锁定冲在第二架和第三架,僚机锁定最后面那架”,这种复杂信息用语音播报起来就非常麻烦,要在多个单位之间共享还不出错就更难。如果使用数据链来通讯,一段文字或者几张图片就可以表达清楚,效率截然不同。

在美国和北约体系内,它叫TDL(Tactical Data Link,战术数据链),按照严格定义,是“使用无线电或线缆进行数据通讯的标准“。在美国和北约的所有C3(3个C分别代表命令、控制、通讯)系统中,都使用标准的TDL来进行通讯。

作为军用通讯标准的TDL,安全性和效率当然是需要尤其保证的。而且军用通讯环境复杂,不可能像民用通讯有那么好的保障,各节点往往都处于高速运动当中,所以其带宽有限,速度偏低,这也没有错。

但是,飞行员为了适应有限的数据传输速度,所以发展出一套专门的精炼语言,这就说不过去了。

单从技术上分析,“飞行员为适应有限的传输速度发展出一套专门的精炼话语”也不太可能。我们不妨来设想一下,如果传输速度有限,而飞行员不节制自己的语言,会导致什么?

大概有两种后果:一种是数据量太大,导致说话有延迟(类似下载慢了),对军用通讯来说,这基本不可接受,因为时间就是战机;一种是数据量太大,所以降低采样频率(降低语音质量),在速度不变的情况下保证实时,但这要求语音采用可变码率编码(VBR),这同样不太可能,业界广泛使用的都是固定码率编码(CBR)方案——想想有多少音频文件的大小是和时长成线性比例的就知道了。考虑到TDL诞生在好几十年前,采用可变码率的可能微乎其微。

当然,即便带宽不是问题,如果飞行员废话太多,不能迅速沟通清楚,仍然会贻误战机,造成大问题。但是,这和数据链的传输速度没有关系。

那么,数据链和语音到底是怎么个关系呢?怀着这种好奇,我专门搜索了一番。目前美军大量使用的Link 16数据链,美国主力军火制造商诺斯罗普·格鲁门公司网站上有详细的文档,我做了一点摘录。

Link 16是在Link 11 / Link 11 B 和 Link 4A / Link 4C的基础上发展而来的,基于TDMA技术的数据链。在Link 16诞生之前,语音通讯和数据链通讯是分开的,语音通讯是模拟传输的(当然也经过了加密)。Link 16 提供了许多新特性,其中就包含语音的通讯。

大部分的Link 16 终端都提供了两个安全语音通道,一个是16 kbps的未编码语音通道,一个是2.4 kbps的可编码(也可以不编码)语音通道。两个通道都按照PTT(Push To Talk)协议通讯,可以简单理解为“想说话时,按下按钮就可以讲,不必先拨号”,这延续了对讲机通讯的规则,也符合战场上使用的场景。

要补充的是,两个语音通道的带宽是各自独立的,也不是混合在总的“数据通讯带宽”里的。这不难理解,虽然战斗机之间的数据传输速度很重要,但相比起来,图像、文字稍微慢一点还可以忍受,语音慢一点可能就会要命了。

An image to describe post 谈谈战斗机语音通讯系统的设计,兼与“得到”商榷

Link 16里的语音通讯流程。来源:Northrop Grumman公开文档。

每个Link 16终端的核心内存里,保留有两份发送缓存和两份接收缓存,由SICP(Subscriber Interface Computer Program, 订阅者接口计算机程序)维护。在飞行员说话时,语音首先编码为数字内容,然后进入语音缓存,大小为450 bit。如果当前收到PTT指令,则把语音缓存数据送入发送缓存。若发送缓存已满,且当前PTT仍然有效,SICP会控制将语音缓存继续送入另一份发送缓存——换句话说,两份缓存交替使用。同时,SICP会将语音数据组成数据传输块,交给NICP(Network Interface Computer Program, 网络接口计算机程序)发送出去。接收语音是也是如此,SICP控制两份缓存交替工作。

说句题外话,虽然军用系统的开发很严格很神秘,但基本的设计原则是相通的。一方面,IT人基本都能看到和理解这个设计;另一方面,诺斯罗普·格鲁门公司的文档里也说明,通讯模型是建立在OSI七层模型之上的。

回到最初的话题,现在我们可以下结论了,“因为传输速度有限,所以飞行员要用精炼话语”的逻辑并不存在。因为语音传输的速度是固定的,要么是16 kbps,要么是2.4 kpbs,语音传输的速度就是语音编码率的上限,所以多说话并不会占据额外的带宽。因此无论飞行员说多少话,数据传输量只与时间有关——换句话说,飞行员说话精炼是为了节约时间,在模拟通讯时代就是如此,数据通讯时代仍然如此,与带宽无关。

看到这里大概会有人问:常见的mp3,如果是32 kbps都觉得音质很差了,16 kbps的音质不影响交流吗?与此关联的,Quora上也有一个问题:为什么飞行员说话的声音听起来都差不多?

这个问题的答案也很简单。道理和mp3一样:如果传输速度有限(无论模拟还是数字),要减少数据量,解决办法不是飞行员少讲话,而是语音采样上要做取舍,去掉频率过高和过低的部分,只留下中间的部分,同时降低采样率(每秒钟采样多少次),所以许多“音色“细节就这样被过滤掉了,剩下的是”千篇一律“的声音。只不过mp3比较讨巧,去掉了大部分人耳“听不见”的频段,而飞行员的通讯就更暴力一些(但是不影响沟通)。另外,飞行员也有自己认同的一套“行话”,外人听起来觉得千篇一律,这也是重要原因。

如果我是战斗机通讯系统的设计人员,我多半也会这样选择:在有限的通讯速度下,要创新的不应该是飞行员的说话方式,而是语音编码和传输系统。如果我们开发出来的系统很难用,又告诉用户说“条件就这样,我也懒得多想,你也没别的选择,就按我的来吧”,那真是所有脸面都被丢光了。我以前的领导说过“操作起来太复杂的系统,多半是程序员偷懒的结果”,虽然他不是做技术的,但这句话我印象特别深刻。

为了验证我的观点,我找到了英国媒体公布的,2003年英美军队在伊拉克误伤自己人时候的飞行员通话录音。大家可以听听,飞行员是否有“为适应传输速度而专门精炼”的感觉?

Alright, POPOV 35 has smoke. Let me know how those friends are right now, please.

I'm getting an initial brief that there was one killed and one wounded, over.

POPOV 35, Copy, RTB(Return to Base)

如果上面的分析都没错,我想你应当认同我一直以来的观点。如今不少“知识付费”,走的都是“讲一个小故事,让你明白一个道理”的路子,这个路子很讨巧,也很容易记住,但是,隐患也不少。

单独来看,小故事和大道理都没法说有错。但我们也需要知道,所谓”知识体系“,说的是不同的知识点之间应当存在有机的、符合逻辑的联系;所谓”独立思考“,指的是在不借助权威的情况下,能依据已有的知识、逻辑、理性,来判断某些信息的对错。

如果小故事和大道理之间本来没有联系,非要找些剧本一样好看的逻辑串联起来,这种叙述就和知识体系、独立思考完全无关。这样的“知识付费”节目,用来长长见识开开眼界、长长谈资是不错的,但如果过分热衷,以为这就是知识,这就是学习,长此以往,受害的还是自己。

那么,军用飞机真的有需要适应有限传输速度,节省带宽的需求吗?有的!无人机在这方面的需求非常迫切,后方基地操作无人机时就要受到传输速度的限制,所以如果遇上复杂情况,后方无法很迅速地了解现场态势,下达复杂的指令。正因为如此,如何让无人机更智能,不用后方下达指令就可以自主应付复杂场景,这是一大挑战。

最后说个好玩的,美军文档也坦承自己的数据链遇到了大坑:因为Link 16中的数据签名是用的无线电频率,容易被敌方侦测到。所以F-22战斗机使用IFDL(InFlight Data Link)降低被侦测的概率,而F-35战机装备的是MADL(Multifunctional Advanced Data Link),通过高速切换窄波定向天线来达到同样的目的。然而悲剧的是,虽然IFDL和MADL都很先进,数据传输和处理速度远远超过Link 16,但Link 16、IFDL、MADL三者并不兼容。

以前看过报道,海湾战争时期,因为不同军种的通讯无法兼容,美军联合指挥司令部为了通知海军协助打击目标,不得不出动直升机把软盘送去航空母舰。这之后,美军花了大力气整合通讯系统和指挥体系,但是想想数据链的大坑,我们只能说,路漫漫其修远兮,美军还得上下求索。

本次就不放自己的二维码了(如果你对我的内容有兴趣,欢迎订阅)。我向大家推荐另一个高质量的技术公众号:技术琐话。

技术琐话

An image to describe post 谈谈战斗机语音通讯系统的设计,兼与“得到”商榷

▲长按图片识别二维码关注

技术琐话:以分布式设计、架构、体系思想为基础,兼论研发相关的点点滴滴,不限于代码、质量体系和研发管理。本号专家阵容:蚂蚁金服右军、易宝CTO陈斌、米么金服总监李伟山、米么金服首席架构曲健、蚂蚁金服技术专家张翔、游戏技术专家杨彪等。