[教程]【AI2+AI】变声APP 精华

2022-11-15 16:33:55 [显示全部楼层]
8593浏览
查看: 8593|回复: 2

[教程] 【AI2+AI】变声APP

[复制链接]
本帖最后由 szjuliet 于 2022-11-16 19:05 编辑

合成语音APP - Deepfake的伦理问题

本单元学生通过创建一个智能手机app来探索合成媒体,该app可以通过改变语音的速度和音调来用不同的声音说话。 学生分组讨论各种类型的 Deepfake(深度造假) 媒体在未来可能产生的影响,包括商业和辅助技术以及犯罪中使用的媒体。



TueNovember-202211158673..png TueNovember-202211155745..png
TueNovember-202211153958..png


变声app

难度: 初级

课程类型: 课程单元

学科: 计算机科学

年级:

  • 9~12年级

本单元学生通过创建一个智能手机app来探索合成媒体,该app可以通过改变语音的速度和音调来用不同的声音说话。 学生分组讨论各种类型的 Deepfake(深度造假) 媒体在未来可能产生的影响,包括商业和辅助技术以及犯罪中使用的媒体。

教育工作者可以利用本课向学生介绍编码,提供对人工智能和机器学习的基本理解,并提示学生预测未来社会中合成媒体可能的使用和滥用。。

教程地址: Fake Voices: The Ethics of Deepfakes

课时

3 x 50分钟 课程

目标年级

高中 | 9-12 年级(高中生可以参加这个单元学习。)

挑战

制作自己的变声app!

“Deepfakes”是由人工智能创建的视频和声音。强大的计算机通过录制的音视频中学习,然后创建几乎与人类完全一样的新的、人工合成的Deepfake版本。

例如,在本教程最前面的视频中,Jay-Z 的声音是由计算机模型创建的:

这段 Deepfake 视频听起来像是 Jay-Z 正在朗读莎士比亚的“To be or not to be”演讲。

有时deepfakes 中的声音听起来有点假 ———— 但大部分时候很难分辨。每个人都能相信自己听到的声音吗?

通过编写下面的 Fake Voices app来创建你自己的搞怪声音。这些声音并不是真正的 deepfakes,因为它们没有使用人工智能,但效果也很好哦!

本教程有一些代码可以帮助你入门。完成后,尝试修改app的设计和功能,来完成你生活中某项有用的任务。你还可以使用文末的链接探索使用人工智能完成的合成语音。

使用 iOS 或 Android 手机/平板电脑来测试这个app,但 Chromebook 因为其处理语音识别的方式不能作为测试设备。

本教程的灵感来自 YR 媒体的故事:四个 Deepfake 场景以及 Fake-Ish 播客:<Getting Real about Imposter Syndrome 和 Other Ways We Feel Fake.>

1. 项目简介

看看完成的 Fake Voices app会是什么样子,然后按照步骤来制作你自己的!

2. 查看逻辑设计

在逻辑设计视图中,查看初始文件中的组件。 别忘了看看工作面板中手机下方非可视组件!

尝试弄清楚每个组件的作用。(保持组件名称相同,稍后你将需要使用它们进行编码!)

3. 完成设计

首先在app中添加一个按钮和几个滑动条。

<font color=#0099ff >首先添加一个按钮让app说话。</font> 我们需要一个按钮来收听读回给我们的文本。 转到 Palette (用户界面)并拖入一个 Button (按钮)组件:

你刚刚向app添加了一个组件,但在编写代码之前它并未连接到任何内容。 (这就像你叔叔家的门铃:前门上可能有一个按钮,但你按它什么也没发生,因为它通常坏了。)

<font color=#0099ff >重命名按钮。</font> 重命名组件有助于你在以后编码时识别它们。 组件名“Button1”不会告诉你它是做什么的。

确保在组件中选择按钮并将按钮名称更改为“HearTheWordsButton”:

<font color=#0099ff >更改按钮文本。</font> 选择 Components (组件列表)中的按钮,转到 Properties (组件属性)窗口,并将按钮文本更改为“Hear the Words Read Back”:

4. 创建一个滑动条

<font color=#0099ff >为音高滑动条添加标签。</font> 接下来,转到 Palette(用户面板) 并拖入一个 Label (标签)组件:

<font color=#0099ff >更改标签名称和文本。</font> 选择标签并将其重命名为“PitchLabel”。然后转到组件属性并将标签文本更改为“更改音高”。 不要忘记将 TextColor(文本颜色) 更改为白色,以便人们可以看到你的新标签!

<font color=#0099ff >添加滑动条以更改音高。</font> 转到 Palette(用户面板) 并拖入一个 Slider(滑动条) 组件。 确保在组件列表中选择了滑动条并将名称更改为“PitchSlider”:

<font color=#0099ff >更改滑动条属性。</font> 通过将其宽度更改为“Fill Parent”(充满),使 PitchSlider 在屏幕上拉伸,如下所示。 要使滑动条与app的其他功能一起使用,请同时更改其 MaxValue(最大值)、MinValue(最小值) 和 ThumbPosition(滑块位置)。

5. 添加另一个滑动条

<font color=#0099ff >拖入标签和滑动条以更改语速。</font> 将标签重命名为“RateLabel”,如下所示。 将此标签的文本更改为Change the Rate“更改语速”。 然后更改标签属性。 再将滑动条的名称更改为“RateSlider”并更改其属性,如下面的第二张图片所示。

(注意:暂时不要担心更改这些组件的外观。你可以在测试app后调整设计!)

6. 查看代码

单击右上角的“逻辑设计”按钮以查看在何处对你的app进行编码。

Block逻辑设计中已经有一些代码可以帮助你入门。 先查看代码看看自己是否能猜到它的作用。

7. 编写Take It代码块

棕色代码块被称为“事件处理程序”,因为它们会在app中发生重要事件时触发。 第一个事件处理程序显示当你单击app中的按钮“Say Something!”时会发生什么。该按钮启动内部的紫色块 — 并将你说的话转换为文本:

该按钮调用紫色的 SpeechRecognizer 代码。调用意味着某个特殊的函数开始一段代码。这就像从镇上打电话给你姐姐来修理你的自行车轮胎。 (因为她真的很会骑自行车!)

第二个事件处理程序调用 来显示app中的文本:

在这种情况下, SpeechRecogizer 将你所说的内容存储在变量中。 通过将变量连接到文本框,你可以使文字显示在屏幕上。 (后面你也可以通过将鼠标悬停在橙色的单词 result 上来找到 块,如下所示。)

8. 测试语音识别

SpeechRecognizer1 代码将你说的内容转换为书面文本。 (在添加更多代码之前,新制作的按钮和滑块无法起作用。)

使用 App Inventor Companion AI伴侣 将app连接到你的手机。

当按下“Say Something!” 按钮,它会打开一个小屏幕来捕捉你说的话吗? 对着手机说话,app应该会自动在文本框中输入单词。

尝试用不寻常的单词或短语来欺骗 SpeechRecognizer 软件。 它总能识别正确吗?

9. 让app说话

<font color=#0099ff >为按钮添加一段代码。</font>当有人按下 HearTheWordsButton 时,让app开始说话。将单击按钮事件处理程序 拖入到工作面板,如下所示:

当有人按下按钮时,这个代码块会调用里面事件处理程序中的代码。此时,你希望手机大声朗读文本框的内容。当计算机阅读文本时,它被称为“文本转语音”。

<font color=#0099ff >添加文本转语音。</font>从 TextToSpeech1 组件中将 代码块拖出。

什么是文字转语音?

计算机可以说出书面文字,但要让机器像人类一样说话却比看起来要难得多。有时重音是错的,或者停顿听起来不自然。

app中的文字转语音可以调整来重构口音。该软件可以说带有美国、爱尔兰、澳大利亚或其他口音的英语。该软件还可以说带有拉丁美洲、卡斯蒂利亚或其他口音的西班牙语。

手机中的文字转语音效果非常好,但人工智能软件合成的语音听起来更好。在很多情况下,你无法轻易分辨出 AI 不是人!

10. 告诉app该说什么

<font color=#0099ff >获取文本。</font> 文本转语音组件需要知道该说什么。 为此,请从 SpeechTextBox.Text 中获取文本。 你可以在这里找到:

11. 测试假声音

使用 App Inventor Companion 再次测试app。

这一次,按下“Say Something”按钮生成一些文本,然后按下“Hear the Words Read Back”按钮让计算机大声朗读这些单词。 听起来像人在说话?还是已经相当接近?

尝试在橙色文本框中输入文本的第二种方法:从设备上的某个位置剪切一些文本并将其粘贴到文本框中。

12. 使用滑动条

想让电脑的声音听起来毛骨悚然吗?将滑动条按钮连接到代码上来改变声音的音高和速率。

每次用户移动这些滑动条,都会新位置分配一个数值。当用户将滑动条向左移动时,会分配一个较小的数字,向右移动时,会分配一个较大的数字。

<font color=#0099ff >设置音高。</font>添加一个 代码块到事件处理程序,如下所示。这些块必须位于   的上方,这样说话之前才能改变设置!

下面这个小拼图还需要一块吗?

TextToSpeech1 的setter代码块正在寻找一个值。你要如何完成这个代码块并为它赋值?

提示

是的,要获得音高值,将pitch滑动条的滑块位置(thumb position)放入插槽中。

<font color=#0099ff >为语音速率创建另一个setter。</font>

这个过程与音高相同,除了这次使用set TextToSpeech1.SpeechRate,将rate滑动条的滑块位置(thumb position)放入插槽中。

解决方案

测试最终代码

使用 App Inventor Companion(AI伴侣) 测试你的app。 这一次,让app以令人毛骨悚然的怪物声音或高亢的小鸟声音阅读文本。 你能找到哪些最奇怪的低音/高音和快/慢速率组合?

恭喜,你完成了这个项目! 你已经创建了一个可以识别语音并以自定义音高和速率说出单词的app。 接下来,你可以在 App Inventor 中构建app,以便在任何地方与任何 Android 手机共享。 <font color=#b01418 >重要提示:能力越大,责任越大! 不要使用你的新app来吓唬别人!</font>

扩展你的app

计算机以许多不同的方式制造假声音。手机或平板电脑内部使用称为文本转语音的技术来生成说话的声音。你认为你的app的声音会在阅读长篇文章时伪装任何人吗?还缺点什么?

一些人工智能系统 —— 例如 Siri、Google Voice 或 Alex a—— 听起来更人性化。他们创建合成语音。这些机器学习模型是通过听数百万人说话来训练的。它们真的能骗过人耳吗?由你决定。

尝试以下实验:

  • 在你的手机或平板电脑中,复制演讲或书籍中的几句话,例如马丁路德金的“我有一个梦想”演讲中的一段,如下所示。

    We refuse to believe that the bank of justice is bankrupt. We refuse to believe that there are insufficient funds in the great vaults of opportunity of this nation. So we have come to cash this check, a check that will give us upon demand the riches of freedom and security of justice.

  • 将此段落粘贴到app的文本框中并注意:它听起来自然吗?

  • 接下来,将这段话粘贴到以下人工智能系统之一中(两者都是免费的):

    • <font color=##0000ff >谷歌云助手。</font>向下转到页面左侧名为“演示”的部分。将框中提供的文本替换为你想要的任何文本。尝试使用语言和语音名称设置。
    • <font color=##0000ff >IBM Watson 文本转语音</font>。将框中提供的文本替换为你想要的任何文本。尝试使用语言、方言和神经语音Neural voice设置。

哪些假声音听起来最接近人的声音?哪个是你最喜欢的?

以下是一些增强app的方法。试试看,或者想出你自己的想法!

  • 使用户界面更容易或更有吸引力。让五个人试用你的app,看看他们的想法。询问不同年龄和不同舒适度的人使用计算机。根据此反馈,你需要对用户界面进行哪些更改?
  • 在屏幕上显示音高和速率的数值。
  • 用另一种语言键入或粘贴到app文本中(在某些情况下,你甚至可以用西班牙语说话!)如何设置 TextToSpeech1 以更好的口音朗读文本?例如,你如何使用 set TextToSpeech1.Language 代码块和Language代码“ES”在你的app中获得更好的西班牙口音? (如果你使用的是 Android 设备,请确保在设置中将设备的文本转语音设置为 Google 语音引擎。)你如何允许用户从app界面中选择口音?
  • 将文本转语音的声音更改为男性声音(以获得真正的弗兰肯斯坦效果)。在 iOS 中,查看“辅助功能”下的“VoiceOver”设置。在 Android 中,查找“文本转语音输出”设置。 (Android 让你先选择一种语言,然后再选择该语言的特定语音。)
  • 你如何使用本app功能来创建执行重要任务或服务的东西,例如用于旅行的即时翻译?

你还有哪些想法?

关于Youth Mobile Power

我们很多人整天都在手机上度过,痴迷各种app。尽管我们知道手机会对我们的注意力、隐私甚至安全构成威胁,但我们还是继续打字和刷手机。但“口袋里的电脑”也为年轻人创造了未开发的机会,让他们学习、联系并改变我们的社区。

这就是为什么麻省理工学院和YR媒体联手推出了青年移动动力系列。YR青少年制作故事,突出年轻人如何以令人惊讶和强大的方式使用手机。与此同时,麻省理工学院的团队正在不断改进MIT App Inventor,让像你这样的用户能够创建像YR报道中提到的那样的APP。

回归初心:从故事中获得灵感,开始制作你自己的app吧!

YR和麻省理工学院的合作部分得到了美国国家科学基金会的支持。本材料基于美国国家科学基金会在批准号下支持的工作。(1906895, 1906636)。本材料中所表达的任何意见、发现、结论或建议均为作者个人观点,并不一定反映美国国家科学基金会的观点。

点击此处查看更多由YR创建的app和交互式新闻内容。



赤星三春牛!  高级技匠

发表于 7 天前

哇!!!!
回复

使用道具 举报

赤星三春牛!  高级技匠

发表于 7 天前

厉害厉害!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail