本站是 ODERSA 的官方网站。 如何确认这一点

官方域名

本站的网址以 odersa.org 结尾。协会的每一项服务都放在 odersa.org 的子域名下,别处一概没有。如果浏览器地址栏里的网址不是以 odersa.org 结尾,这个站点就不是我们的。

免费,也不用账号

所有内容一开始就全部开放:不用注册,不用账号,不用密码,不用订阅,也没有广告。没有什么是留给付费的人的,因为这里什么都不收费。

不收集任何数据

本站不跟踪您:没有跟踪代码,没有跟踪 cookie,这些页面里没有内嵌任何统计工具,也不在您的设备上测量任何东西。我们的主机会以汇总方式统计请求,就像任何会应答的服务器一样:只是一个总数,绝不是一份个人档案。您不必相信我们的话:打开浏览器的开发者工具,切到“网络”标签页,然后刷新页面。您会看到本站请求的完整清单。所有内容都来自 odersa.org,没有任何东西发往别处。

内容自由使用

内容以 CC BY 4.0 许可协议发布。您可以复制、翻译、打印并再分发,用于课堂或身边的人都可以,唯一的条件是署名 ODERSA。

一段被造出来的声音

人声是靠叠加谐波、再让它们像声道那样共振造出来的。这个演示把同一个声音造两遍,一遍粗糙一遍精细,让你比较耳朵听到的和图上看到的。

录音棚里,几支立在支架上的话筒围着一套架子鼓
录一段人声曾经需要一间录音棚。今天复制一段人声只需要几秒钟的声音。 照片:dan paluska, 文件页面,许可协议 CC BY 2.0 (许可协议文本).
说明

一切都在你的浏览器里计算。两段声音都在这台设备上造出来,它们的频谱也在这里算出来,没有任何声音被发往或取自任何服务器。打开浏览器的“网络”标签页,再动手玩这个演示:不会有任何请求发出去。两个“试听”按钮会发出声音:想听就把音量调上去,也可以直接读图,图上都有说明,不听声音也读得懂。

同一个声音,造两遍

本页两段声音的出发点完全相同:同样的音高,同样的随机种子,同样的一秒时长。一段保持粗糙,另一段多做了一层处理,下面“方法”那一节有说明。除此之外,两段没有任何区别。

一个词或一个数字。它决定音高的微小起伏、气息的颗粒感和线路噪声:同一个种子在任何设备上都会给出完全相同的声音和完全相同的图形。
三个固定的共振峰决定每个元音的音色。它们随这个选择而变。
130 Hz
基频,单位赫兹。低沉的嗓音从 90 左右起步,高亢的嗓音能到 240。
0%
事后加到两段声音上,用来模拟一条电话线路或一个压缩过的文件。本页最有教益的一个设置。

启动生成。两段声音、它们的两张声谱图,以及谐波与背景之间测出的差值都会显示在这里,每段各配一个“试听”按钮。

这个演示展示了什么

一列谐波,光着的还是修整过的

两段声音都从同一个动作出发:一列谐波,调在同样的音高上,同样的种子,同样的时长。粗糙版就到此为止。精细版多做两件事:用三个固定的共振峰去塑造每个谐波的幅度,赋予一个元音它的音色;再让音高和幅度在一个周期到下一个周期之间发生微小起伏,并加上一层低电平的气息声。除此之外,两段没有任何区别。

在图上,差别先看到、后听到:粗糙版显出的是细而极其干净的条带,条带之间几乎没有能量。精细版显出的条带更宽,集中在三个共振峰上,谐波之间还有一层略微发灰的背景:那就是气息。

一个几乎经不起什么就消失的差值

这个差值,也就是谐波的电平与它们之间背景电平之差,是在声音中段取一帧六十四毫秒的信号上按分贝测出来的。在默认音高 130 赫兹下测得的数值如下。

按生成之后加入的线路噪声测出的谐波电平与频谱背景电平之差,单位为分贝。种子“ODERSA”,音高 130 Hz,元音 [a]。
加入的线路噪声粗糙版精细版
无49.711.7
1%30.311.5
2%24.611.3
5%17.110.6
10%11.89.8
20%8.48.4

一点噪声都不加时,粗糙版的差值差不多是精细版的四倍:一列光着的谐波,没有气息也没有不规则,比任何真实人声都更干净。只要加上一丁点线路噪声,这份过头的干净就崩了:到百分之十,粗糙版的差值已经缩到不足原来的四分之一。到百分之二十,两个差值严格相等:测量再也分不出粗糙版和精细版。

让一个声音“干净得不像真的”的那个东西,恰恰是一条普通电话线路最先抹掉的东西。

方法

下面是每个版本各算了什么,供想不用这一页重做一遍的人参考。

  1. 造一列调在所选音高上的谐波:对每个整数次,取一个频率为该次数乘基频的正弦,幅度为该次数的倒数。这是一个简化的声门源的形状,两个版本共用。
  2. 粗糙版:到此为止。两端各有一小段极短的幅度包络,只为避免起止的爆音:别的什么都不加。
  3. 精细版:用三个固定的共振峰塑造每个谐波的幅度,这三个值是所选元音的常用值,不是在某个真人身上测的。让音高和幅度在一个周期到下一个周期之间起伏一小点,起伏量由种子抽出。再混入一层气息:一个由同一个种子抽出的低电平噪声。
  4. 把两段声音归到同一个峰值幅度,好让这次比较绝不取决于单纯的音量差。
  5. 如果设置要求,就事后给两段声音加上同样的线路噪声:一次普通的传输反正会加上这些,不管有没有人造过这段声音。
  6. 测量:在声音正中取 1024 个采样点的一帧,用傅里叶变换算出它的频谱,量出每个谐波的电平,量出它们之间的平均电平,然后相减。

在演示里改一下音高或元音,共振峰就跟着移动:测量跟着声音走,它从不照抄一个事先写好的数字。

这个演示不做的事

  • 它表明一段语音声音是分两层造出来的:一个振动的声源,一个共振的通道,而第二层改变了让一个声音显得“活”的一切。
  • 它表明谐波与频谱背景之间存在一个可测量的差值,两个版本都有。
  • 它表明从多大的线路噪声开始,这个差值就不再能区分两个版本。
  • 它不做任何检测。本页两段声音都是它自己造的:它知道哪段是哪段,不是猜出来的。
  • 它不评判你带来的任何录音,也不接收任何文件。一个声称能对真实人声下结论的工具,那是在骗人。
  • 它不复现一套真实的声音克隆系统。那些系统是从一个真人的录音里学出参数的,而这里三个共振峰是手工设定的,用在一个合成音上。

研究测出了什么

三项已发表的结果,正好给这一页在一分钟里让人感觉到的东西定了位。

今天克隆一段声音需要的材料极少:一项研究工作描述了一个名为 VALL-E 的系统,它能凭一段仅三秒的录音,为一个它从未听过的人合成出被评为高质量的个性化语音。三秒,比说出自己的名字还要短。

剩下的线索来自造出来的音频里可辨识的信号处理伪影,而关于检测的研究正是靠这类痕迹来构建它的基准数据集。但负责发现这些痕迹的系统,面对真实的声学条件仍然不够稳健,对训练时没见过的生成方法也泛化得很差。

这些来源没有一项直接测量了人耳面对一段近期克隆人声的表现:所以本页不能替它们作出这样的断言。它们允许说出的话更克制,但同样有用:一个专门训练来发现造出来的人声的系统,尚且难以泛化到一种新方法上;而频谱上过头的干净,在它存在的时候,恰恰是那种被一条普通线路噪声在任何人(无论是人还是检测器)用上它之前就抹掉的痕迹。

一个熟悉的声音,从电话里传来

2024 年 1 月,美国的一家公共机构,联邦通信委员会(FCC),记录并在法律上处罚了一起真实的欺诈行动:一通自动电话在新罕布什尔州总统初选前拨出,播放的是一段用人工智能克隆、模仿总统乔·拜登的声音,要求选民留在家里,跳过这次初选,把票“留着”。声音里没有任何东西提示任何人它是造出来的。

一通电话本身就已经压缩了声音、加进了线路噪声,只给耳朵留下一段很窄的频带。这恰恰是本页刚刚用它自己的线路噪声设置造出来的那种组合:让一条线索最有可能消失的条件,是一通普通电话的条件,不是一间录音棚的条件。

要守住的那个动作

当一个熟悉的声音在电话里要求某件急事,一笔转账、一个验证码、一个地址,不要去判断这个声音:本页刚刚展示了这有多不可靠。挂掉,然后自己用你原本就有的号码打回去,不要用刚刚来电的那个号码。如果这通电话必须马上继续,就问一个答案在任何公开地方都查不到的问题。一个家庭或一个团队也可以事先约定一个只有真人才知道的词,用在紧急得来不及核对别的东西的场合。这个动作不费什么:而上面记录的那起欺诈,让相信自己耳朵的人付出了昂贵的代价。

想再往下走

对图片做同样的工作,见一张被造出来的图片那一章。在源头标记内容的两种方式,见水印那一章。该把这个工具收起来的情形,汇集在什么时候不要用它。本站所有演示都汇集在演示页面,课程目录在理解页面。

来源