图象合成的制作方法

文档序号:6412938阅读:138来源:国知局
专利名称:图象合成的制作方法
技术领域
本发明是关于活动图象的合成,例如伴随合成语音。
按照本发明,提供一种生成表示具有与口语发声相匹配的有形发音的面部活动图象的信号的方法,包括接收一系列对应于发声的连续部分的语音表述;辨明第一类型的各语音表述的口形;辨明由一第一类型语音表述到第二类型语音表述的各个转换、由一第二类型的语音表述到第一类型语音表述的各个转换由一第二类型的语音表述到第二类型语音表述的各个转换的口形;和生成一系列包含有被辨明形状的图象帧。
第一和第二类型可以分别为元音和辅音,这样,本发明一优选实施例即提供一生成表示具有与口语发声相匹配的有形发音的面部活动图象的方法,包括接收一系列对应于发声的相接续的音素的发音表述;辨明各元音音素的口形;辨明由元音音素到辅音音素的各个转换、由辅音音素到元音音素的各个转换和由辅音音素到辅音音素的各个转换的口形;和生成一系统包含被辨明形状的图象帧。
对辅音与元音音素间的各个转换的口形辨识可作为元音音素和辅音音素的函数来进行,而对二辅音音素之间的各转换则可作为二辅音音素中的第一个和与其最接近的后面或前面的元音音素的函数来进行。或者,对两辅音音素之间的各转换的口形辨识可作为二辅音音素中的第一个和紧随其后的元音音素的、或者在没有此音素时则为其前面的元音音素的函数来进行。
最好对各转换的辨识仅作为上述相对于这些转换所指定的那些函数来进行。或者,此辨识也可作为同一词中的至少另一个音素的函数来进行。
在一优选配置中,可对已经辨明的口形产生一指定该形状的命令和各自指定介于由前面和随后命令指定的形状之间的形状的中间命令。
本发明的另一方面提出一用于产生表示具有与口语发声相匹配的有形发音的头部活动图象的信号的设备,具备有被配置用于接收对应于发声的相接续部分的一系列发音表述的和与之相应地对第一类型的各语音表述辨明一口形和对由第一类型语音表述到第二类型语音表述的各个转换、对由第二类型的语音表述到第一类型语音表述的各转换和对由第二类型语音表述到第二类型语音表述的各转换辨明口形的装置;和为生成一系列包含已经辨明形状的图象帧的装置。
现在参照附图举例说明本发明一实施例,所列附图为

图1为表明实施例部件的功能方框图;图2表示合成人类头部图象中所采用的“成串帧(wireframe)”的平面、正面和侧面视图;图3表示合成人类头部图象的口部分中所用的“成串帧”的类似视图;图4说明在表示说“affluence”时的人类头部的一系列图象的合成中发生的最大元音口形;图5说明词“affluence”中发生的最大的元音到辅音(和反之)的转换口形;图6说明词“afflnence”的发音中其余的口形;
图7说明词“affluence”发音中的口形间的转换;图8为示意说明图象合成单元中为将语音信号翻译成命令信号的单元部件的方框图;图9为说明此实施例设备的运行的流程图;图10为说明复合元音和破擦音变换成它们的构成音素的过程的流程图;图11A-11D说明根据输入音素文件生成中间输出文件的过程;图12说明根据中间输出文件生成指定最大口形的定时和性质的文件的过程;和图13A、13B说明生成指定最大口形和中间口形两者的文件的过程。
图1的设备具有以文本形式接收要讲述的单词、和以音频信号形式生成相应的言语并生成为显示带有对应于该同一言语的口的发音的面部运动图象(例如人类的或卡通的)的对应视频信号的功能。在此说明书中将会经常引用口的发音运动,这应被理解为这种发音可能包含口唇、口的内部(如希望的话还包含齿和舌)、上下颚和周围区域的运动。其他运动例如整个头部的运动或转动、眉毛的动作等等也可能包括进来以便使所得到的图象显现得更真实。
来自一被存储的文本文件的或其他所希望的来源的文本以按照任一简便的标准表述(例如ASCⅡ码)的字符代码形式在输入端1接收。接收它的是一种通常结构的言语合成器,但在此被表示作为分开的两个部分,即一将通常的表音法变换成语音表述(例如音素和各自的持续时间)的清单的文本-语音变换器2和将此清单变换成音频波形的言语合成器本身3。任何音素组均可采用,但为了这一说明,假定采用British RP-SAMPA组,它标定如下表1中所列的38个美国英语的独立音素。
表1
待续
因为言语合成器是一般的,这里将不再进行说明。
此音素清单由下面将更详细说明的翻译单元4接收。它用于由此音素清单生成一系列命令信号,指定面部所需的口的发音动作以使得它能以对应于音素清单因而即对应于合成器3所产生的言语信号的状态动作。
这些命令信号由图象合成单元5接收。这一单元中存储有所希望的面部的一单个视频帧即静止图形的位象,用来生成表示这一面部的但具有运动的连续的视频信号。显然这一视频信号可以是任何所希望的标准,在此假定为每秒25帧的Systeml信号。此运动是借助于三维成串帧模型生成的。一典型的这样的模型如图2中所示,其口部区被放大表示在图3中。它具有三维空间中的许多点(顶点)而连接这些顶点的直线定义被称为小平面的三角形面积。在此实际设备中,此模型以一组被存储器数据存在,即对各顶点有一顶点号及其X,Y,Z座标和对各水平面有一小平面号和形成小平面的角的三个顶点的数量。在初始化阶段,单元5确定这一基准模型的各小平面与位象对应区域之间的映象。由重复地定义其中一或多个顶点采取与其在基准模型中所占据位置不同的被改变的模型来产生运动。然后单元5必须生成一新的二维位象。这由辨识其一或多个顶点已作相对于基准模型移动的被改变模型的任一小平面来进行,对每一个这样的小平面采用一内插处理,其中按照映象关系对应于它的原先位象的该三角形区被移动和/或变形以占据新的位象中的一个三角区,该三角区据按照映象关系对应于被改变模型的小平面的一三角形区。对输出信号的每一帧(即每40ms)生成这样一位图。对于图象合成单元5的更详细的操作和实现可参看W.J.Welsh,S.Searby和J.B.Waite“基于模型的图象编码”,Br,Telecom Technol,J.,vol8,No.3,July 1990。
驱动图象合成单元5所需的命令原则上包括每40ms发送给此单元其位置与基准模型不同的各顶点的数目连同其新的座标。但为了操作速度,单元5含有一组存储的动作单元,它们的每一个是由下列组成的数据项一动作单元号(例如0至255)(1字节);一受此动作单元作用的顶点数;一对各顶点顶点号(2字节);其在从基准模型中的位置作的X座标位移(2字节);其在从基准模型中的位置作的Y座标位移(2字节);其在从基准模型中的位置作的Z座标位移(2字节);(当然最好能采用相对于前面帧的X,Y,Z位移。)这样各命令即可简单地由一动作单元号后随一为改变由此动作单元所指定的运动量的定标因数(例如由0至255)组成,或者在希望时可含有数个(在一试制型式中可多达5个)。此单元5在接收到此命令后,查找动作单元并利用对所指定顶点的被存储座标位移(作适当定标)。如果此命令含有双方都指定一特定顶点的位移的两个动作单元,则此位移即就是此二位移的向量和。
现在回过来讨论翻译单元4的运行,引入一形素(viseme)的概念将很方便。正如口语单词可被认为是由所谓的音素的基本单位组成的那样,有形言语可被认为是由形素-有形言语的最小单位、即“有形发音清晰单位的最小可感受单位”所组成的。基本上一形素是一口形,此翻译单元的任务是确定需要什么形素和它们发生的时间瞬间(量化到40ms的倍数),然后以40ms的间隔生成命令来使得能以所要求的间隔产生所需要的形素和产生对中介帧的适当的中间形状。
翻译单元运行的中心是音素与形素之间没有1∶1的对应关系这一概念。首先,有些音素在视觉上是类似的或者甚至是无法区分的,例如,辅音|p|和|b|在视觉上同样,因为它们仅在发声程度上不同而声域的发音相同。这样,可将音素加以分组,同一组的音素就形素生成方面来说被认为是相同的。可能有各种不同分组,一典型分组如下表2中所示表2
(注不存在复合元音是因为这些在处理前被分成为它们的组成元音)。
其次,虽然有可能定义一元音发声与口形之间的关联,但在辅音则不能,此时口形取决于近旁的音素,特别是近旁的元音音素。在本实施例中,口形与元音和与辅音与音素的组合两者相关连。具有相当大数量的涉及辅音的转换。但注意到辅音到辅音的转换极大地受后面元音(或者在断句前一单词的结尾时的前面元音)很大影响,虽然两者的第二个辅音具有某种作用但这十分微弱而可加忽略,就能作第一简化。本实施例即利用这一点将辅音-元音或元音-辅音组合与各辅音到辅音的转换相关连。这样即将系统所需处理的口形数量保持为很低。
为举例说明本实施例的运行,如果文本-语音单元2接收到-表示单词“affluence”的信号,它就运行输出音素清单|#:|{||f||l||u||@||n||s||#:|到翻译单元4。接收到该音素清单后翻译单元就可运行来处理音素清单以输出一系列命令信号。此输出命令信号如图4至7中所示,其中每一个也表明此输入音素清单的内容,即音素本身和它们采样中的持续时间(在此例中采样速率为8khz)。
首先,此输出包含对应于单词中的元音的3个命令信号。这些如图4中所示,其中下面的图中,已辨明元音|{||u||@|,各自被标以条杠,指明被分配给该元音的形素已经确定,认为它在元音的中点发生。
此输出还包含指定与元音-辅音和辅音-元音转换相关的口形的命令信号,这在图5中表明,这里条杠表明口形在元音-辅音或辅音-元音边界。这剩下辅音-辅音转换。如前面提到的,转换被认为其特征主要由第一辅音和随后的下一元音决定,因此转换|f|到|l|被表示(图6中)为辅音-元音组合|f|到|u|的口形。|n|到|s|转换无后跟元音因此所采用的口形对应于|@|到|s|元音-辅音组合,即利用前置元音。前置和后随的静声周期|#:|自然由闭口的面部表现,即基准成串帧模型。
在图6中标以条杠的时间瞬间(更确切说,最接近这些瞬间的40ms),翻译单元4发送给图象合成单元5一指定一动作单元和适应于相关口型的标定因数的命令。在这些瞬间之间的40ms间隔中,需要发送一指定介于此二口形中间的口形的命令。例如,在标以{f瞬间与标以fu的瞬间之间发送一指定此二个分别对应于元音-辅音组合|{|到|f|和辅音-元音组合|f|到|u|的动作单元的命令,(虽然带有降低的标定因数)以便能实现二个形状之间的平滑转换。这样,在此二瞬间中途X%的点上,组合|{|到|f|的动作单元将以其在{f点的标定因数的1-X/100倍的标定因数发送,随同带有其在fu点的标定因数的x/100倍的标定因数的组合|f|到|u|的动作单元。图7图示表明这一处理。将可看到,为了生成中间命令信号,与无声音素相关的口形在到达此无声音素的中央之前不受随后的口形的影响。
在上述表2的11组中,有7个辅音组、3个元音组和1个所谓的“双方”组。此“双方”组包含元音音素和辅音音素双方。这样,不计涉及静声的转换,所有所需的元音和元音-辅音及辅音-元音组合即可由下表3中所示的元音组和元音-辅音组及辅音-元音组组合来表示表3元音 4辅音组到元音组的组合21元音组到辅音素的组合21双方组到其它组的组合10其它组到双方组的组合10双方组到双方组的组合 2总计68这68个元音组和组的组合中的一些对应于相同的口形;而一些口形与其他的相似,主要部分不同,即它们可由同一动作单元产生但采用不同的标定因数。在确定动作单元期间(将在下面讨论)发现这些68个元音组和组的组合可由11个动作单元与适当的标定因数来表述。下表4以对动作单元的说明、随标定因数增加的特点的注解、和可由该动作单元表述的元音组及组的组合的清单来说明这些,还表明了用于生成对应于给定元音组和组的组合的各个口形的标定因数。
熟悉本技术领域的人士将会意识到,在动作单元中对元音组和组的组合作更精细的划分可以定义更大数量的动作单元。
表4


<p>

转换单元4可借助适当地编程的处理装置来实现,这样即如图8中所示包括处理器10、程序存储器11和多个含有查找表的存储器。较具体说,这些包括复合元音表12,音素组表13和动作单元表14。它们为清楚起见作分开表示但在实际上一单个存储器即可包含此程序和这些查找表。现在参照图9-13所示流程图更详细地说明存储器11中所存储的程序的操作。
图9的流程图仅说明作为整体的设备的运行,设定由图10-13所表述的算法发生的来龙去脉。此算法被存放在程序存储器11中并可执行来产生形成待发送到合成单元5的命令信号的基础的动作单元文件(包括动作单元和标定因数)。从而后跟步骤100中的初始化,由言语合成器的文本-语音单元2接收文本消息(S102),生成音素文件(S104)。当翻译单元14确认接收到这一文件(S106),即发生将音素清单翻译(S108)成一动作单元文件(S110生成)。这形成要被传送(S112)到图象合成单元5的命令信号的基础而音素文件被送往合成器3。如果希望的话,在静声期间(S114)或在言语期间(S116)可生成辅助动作单元来产生随机(或其他)头部运动。
步骤108的操作以利用图10中所示流程图说明的程序步骤扩展复合元音和破擦音开始。程序依次读取(S120)音素文件的各个元素并确定(S122)该音素是否由2字符表述。如果是,程序即促使处理器(S124)将此元素分解成它的组成字符并以由这些字符表述的二音素来代替此元素。每一个的持续时间被设定为已被分割的复合元音或破擦音音素的持续期间的一半。作为音素输出清单中的音素数量的量度的一变量(音素数)被增量1(S126)。否则将此元素加到此音素清单(S128)。
将会看到所表明的程序步骤可怎样被执行来借助于复合元音表12来分别将复合元音如|al||aUl|和|el|变换到音素对|{|+|l|、|{|+|u|、和|E|+|l|。类似地,程序可执行来将破擦音|dz|和|ts|分成为2音素。
此后跟着(图11A-11D)逐个元素地检查由图10中表明的处理所生成的音素清单。对每一个初始静声音素后的元素,在一中间输出文件中记录一音素组合或元音和相关的时间间隔。这样,每一项即标识此音素组合或元音连同要在前面的口形瞬间与当前口形瞬音之间要产生的时间间隔(即对应于图6中的条杠之间距离的时间间隔)。除非下面另述的,在每一项之后,程序返回到步骤100以确定是否到达音素清单的最后一元素。如果是,则音素清单的查验结束。否则,程序即返回到当前元素分类步骤130。
为查验此音素清单,对各元素首先确定此元素是一元音、辅音还是静声(图11A、S130)。
如在此当前元素分类步骤130发现为一元音,进行图11B中说明的步骤。首先,确定此音素清单中前面音素是静声、辅音还是元音(S140)。如果此前面音素为一静声音素,即将元音口形前的时间间隔设定为此元音持续时间的一半与此静声持续时间的一半之和(S141)。然后将静声到元音的转换连同所计算的时间间隔输入进中间输出文件(S142)。如前面的音素为一元音音素,则将元音口形之间的时间间隔设定到当前元音持续时间的一半与前面元音持续时间的一半之和(S143。再将元音自身(例如|@|)和相关的时间间隔输入进中间输出文件(S144)。如前面音素为一辅音音素,就确定前面音素之前的音素是否为静声(S145)。如是,则将自前面口形起的时间间隔设定为当前元音持续时间的一半(S146)并将此元音连同计算得的时间间隔输入进中间输出文件(S147)。如不是,则将自前面口形起的时间间隔设定为此辅音的持续时间(S148)和将元音到辅音的组合(例如|l|到|u|和相关的时间间隔输入进中间输出文件(S149)。这时程序不返回确定步骤180而是在转换文件中促使进行另一项(S146、147),此项包含等于当前元音持续时间的一半的时间间隔和元音自身(如|u|)。
图11B的步骤的一个作用是保证对应于当前元音的口形与此元音音素的中央一致。
如果在当前音素分类步骤(S130)中发现一静声,执行图11C中步骤。首先确定音素清单中的前面的音素是一静声、辅音还是元音(S150)。如此前面的音素为一静声,则指示出错(S151)。如在静声之前为一元音则将自前面口形起的一时间间隔设定为此元音持续时间的一半与此静声持续时间的一半之和(S152),并将元音到静声转换连同此时间间隔记录在中间输出文件中(S153)。如此前面音素为一辅音则将由最后一口形起的时间间隔设定为此辅音持续时间与此当前静声的持续的一半之和(S154)。在这一情况下,将元音一辅音组合到元音的转变(例如|@S|到|#:|)和相关的时间间隔输入进中间输出文件(S155)。
如果在步骤130发现为辅音,执行图11D中表明的步骤。首先将前面的音素分类为元音、静声或辅音(S160)。如果它是元音,则将时间间隔设定为此元音持续时间的一半(S161),将元音一辅音组合(例如|{|到|f|}连同此时间间隔记录在中间输出文件中(S162)。如果前面的音素为一辅音,则程序向前搜索音素清单以找到一元音音素(S163)。如发现,(前面辅音和稍后的元音的)辅音一元音组合(例如|f|到|u|)和相关的时间间隔(等于前面辅音的持续时间)被输入到中间输出文件中(S164、165)。如果在前进搜索中未发现元音(S163)则程序促使处理器向后搜索一元音(S166)。如果这一搜索成功则将(较早的元音和当前辅音的)元音一辅音组合(例如|@|到|s|)连同一有关的时间间隔(等于前面的辅音的持续时间)一起加以记录(S167、168)。如果前面搜索和后面搜索均未发现一元音则结果为差错指示(S169)。如果发现此当前辅音紧前面的音素为静声,则进行前向搜索元音(S170),如发现一元音则将一等于当前辅音的持续时间与前置静声的持续时间的一半之和的时间间隔连同一静声到辅音-元音组合的转换一起记录在中间输出文件中(S171、172),如果在此单词中未发现元音,则指示一差错(S173)。
图12中,通过访问查找表13将中间输出文件中的元音和音素组合变换成元音组和音素组组合。原则上这个的内容可以是如上述表2中所列,从而使各元音或音素组合翻译到一组号。但是已发现更方便的不是一组号而是以此组的一被指定的音素来表达各组,例如音素|p|、|b|和|m|全都被翻译成|p|。为达到这一点,处理器由图12中表明的程序控制。对中间输出文件中的各元素,元素的类型将被确定(S190)作为下列之一元音(执行步骤192);元音/辅音组合(执行步骤194);元音/静声转换(执行步骤196);或组合到静声转换(执行步骤198)。步骤(192、194、196、198)将作用于将每一复合元音或辅音变换到被选择来表述此组的一元音或辅音。这一过程返回现在含有如上面讨论的最大68个不同的元音组和音素组组合。
在图13A和13B中,最后所得的组清单利用动作单元查找表14(其内容被列于上表3的列3、1和4中,或利用列3中的代表性音素,如果这是最佳选项的话)被变换成一动作单元文件,以寻求表述此组/组的组合清单中各元素的动作单元。然后动作单元文件可被用来提供以40ms的间隙生成的命令信号序列。
较详细说,此变换过程以从此组清单获取第一元素开始(S200),而后访问动作单元查找表来确定与该元素相关的动作单元和定标因数(S201)。然后计算与此第一元素相关的时间间隔之内的完整40ms周期的数量(S202)。再将此初始动作单元的定标因数以此周期数除来得到一增量值(S203)。这样此过程进入对每一40ms周期产生一命令信号的指令循环(S204)。命令信号中的定标因数通过每当执行指令循环时计算得的增量增加(由零起)。
然后获取组清单中下一元素(图31B,S205)并利用动作单元查找表14求取对应的动作单元和定标因数(S206)。如步骤202中那样,求取与组清单中的该元素相关的时间间隔内的整个40ms周期的数量(S207)。如前,将与当前元素相关的动作单元的定标因数被以计算得的周期数除以得到一增量值(S208)。但清单中前一元素的定标因数被以同一数除以得到一减量值(S209)。而后过程进入一指令循环以计算要输出的命令信号。这些包括一涉及前面元素产生的动作单元和与组清单中当前元素相关的动作单元的加权组合。给予前面动作单元的加权值以每一40ms周期的减量值来减量定标因数而减小,而给予当前动作单元的加权值则以每40ms周期的增量值增量定标因数(由零数)而增大(S210)。这样此命令信号输出即提供由一口形到另一口形的逐步转换。
然后对组清单中各个相继元素加以类似操作(S206~S210)直至到达最终元素。
命令信号根据动作单元文件产生并以40ms的间隔传送到图象合成单元5,使得能产生具有对应于文本一言语合成器的输出的发音的头部图象。
由以上讨论将会注意到,形素亦即对一元音所选的口形是预先分配到该元音的,对一元音一辅音(或相反)组合所选的口形是预先分配给该组合的,对一辅音一辅音转换所选的口形是预先分配给在相同上下文关系中、亦即在此例中具有同一后跟的(或者在缺乏时,前置的)元音中辅音的第一个的。如果希望,虽然以增加所需动作单元的数量为代价,对口形的选择可以更多随上下文情况来进行。例如,对一辅音一元音转换的口形的选择可以不仅取决于辅音和取决于后随的元音而且要取决于前置元音(亦即辅音-元音-辅音组合)这样来选定。对辅音一辅音转换的选择可依据第一辅音和后随及前置两个元音(如果存在的话)亦即实际上依据此二辅音和二元音来进行。
到目前对存贮在图象合成单元5中的动作单元是如何产生的还谈得很少。这在试制型式中是这样完成的,即进行一人员讲说包含全部所需的68个元音组和元音组/辅音组组合的单词的视频记录,利用一帧取样器来显示此记录的静止帧以便使得对应于元音的那些帧和对应于辅音/元音组合的那些帧能被作手工辨识。一旦这些帧(以位图形式)被辨识即需要确定由这些帧的表述的基准成串帧模型的位移。这是利用一计算成串帧模型的为适应一给定的位象所需变型的构型程序来完成的。
权利要求
1.生成表示具有与口语发声相匹配的有形发音的面部的活动图象的信号的方法,包括接收对应于此发声的相接续部分的语音表述序列;辨明对第一类型的各语音表述的口形;辨明对由一第一类型语音表述到第二类型语音表述的各转换、对由第二类型语音表述到第一类型语音表述的各转换和对由第二类型语音表述到第二类型语音表述的各转换的口形;和生成包含经辨识的形状的图象帧序列。
2.生成表示具有与口语发声相匹配的有形发音的面部的运动图象的信号的方法,包括接收对应于此发声的相接续音素的语音表述序列;辨识各元音音素的口形;辨识由一元音音素到一辅音音素的各转换、由一辅音音素到一元音音素的各转换和由一辅音音素到一辅音音素的各转换的口形;和生成包含经辨识的形状的图象帧序列。
3.按照权利要求2的方法,其中对辅音与元音音素间各转换的口形辨识作为元音音素和辅音音素的函数进行。
4.按照权利要求2或3的方法,其中对二辅音音素间的各转换的口形辨识作为二辅音音素中的第一个和最接近地后随或前置它的元音音素的函数进行。
5.按照权利要求2或3的方法,其中对二辅音音素间的各转换的口形辨识作为二辅音音素中的第一个和最接近地后随它的在其不存在时前置它的元音音素的函数进行。
6.按照权利要求3~5中任一个的方法,其中此辨识作为仅仅那些在权利要求中所指定的音素的函数进行。
7.按照权利要求3~5中任一个的方法,其中辨识也作为同一单词中至少一个另外音素的函数进行。
8.按照前述权利要求中任一个的方法,包含对各经辨识的口形生成一指定该形状的命令和生成各自指定一中介于由前置的和后随命令指定的形状间的形状的中间命令。
9.用于生成表示具有与一口语发声匹配的有形发音的面部的运动图象的信号的设备,包括被配置于运行中接收对应于此发声的相接续部分的语音表述序列并按照它们来对第一类型各语音表述辨识口形和对由第一类型语音表述到第二类型语音表述的各转换、对由第二类型语音表述到第一类型语音表述的各转换以及对由第二类型语音表述到第二类型表述的各转换辨识口形的装置;和为生成包含经识别的形状的图象帧的序列的装置。
10.生成表示具有与口语发声匹配的有形发音的面部运动图象的信号的方法,基本上如这里参照附图所说明的这样。
11.用于生成表述具有与口语发声匹配的有形发音的面部运动图象的信号的设备,基本上如这里参照附图所说明的这样。
全文摘要
将输入的音素串变换成口形、即形素序列来进行面部活动图象的合成(例如伴随合成语音)。具体点说是对各个元音和对各个有关辅音的转换产生一个形状。
文档编号G06T13/20GK1214784SQ97193348
公开日1999年4月21日 申请日期1997年3月24日 优先权日1996年3月26日
发明者安德鲁·保罗·布林, 埃马·简·鲍尔斯 申请人:英国电讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1