越来越多的活动(通常称为 STEAM 活动)开始将艺术融入到 STEM (科学、技术、工程和数学)中。STEAM 活动旨在激发人们的兴趣,尤其是对 STEM 主题通常不感兴趣的孩子们。艺术是一个广泛的话题,涵盖了音乐、游戏、舞蹈等领域。
Watson 强大的语言工具已被用来分析从危害问题到医疗文档的一切事物。为什么不将 Watson 的专长扩展到艺术和娱乐领域?我们如何使用 Watson 发现艺术的乐趣?既然 Watson 的专长是语言,如果我们将 Watson 应用于歌词会怎样?
“ Watson 强大的语言工具已被用来分析从危害问题到医疗文档的一切事物。为什么不将 Watson 的专长扩展到艺术和娱乐领域? ”
本教程将帮助您了解如何将 Watson 强大的语言处理功能应用于您喜爱的歌曲和歌词。我们将使用一个 Spotify 帐户来检索通俗歌曲的播放列表,然后从 genius.com 获取这些歌曲的歌词,最后使用 Watson Developer Cloud 对歌词做一些好玩和有趣的事情。
在这一期的 “使 Watson 成为一名摇滚巨星” 文章中,我们将使用 Watson Language Translatio 服务将通俗歌曲的歌词翻译成西班牙文,希望能够以有趣、引人入胜和令人难忘的方式帮助想要提高其西班牙语的英语用户。
运行应用程序
在 GitHub 上获取代码
观看: Node.js 入门(视频演示)
阅读: 上传您的 Bluemix 应用程序
阅读: Spotify 授权指南
阅读: Genius API 文档
该应用程序名为 cuántos caminos ,是 "How many Roads" 的西班牙语翻译,这是 Bob Dylan 的歌曲 "Blowing in the Wind" 的开头几行。该应用程序是让这个商业版的 Bob Dylan + IBM Watson 语言功能 成为现实而迈出的充满希望的第一步。问题是,在声称 Watson 具有人工智能之前,还有多长的路要走?
在命令行中,切换到您想要存放您的代码的地方,并从 Git 资料库克隆它:
git clone git@github.ibm.com:YOUR_REPO_HERE/cuantos-caminos.git
切换到新的存储库:
cd <<em>your_repo_dir</em>>
切换到 authorization_code 目录:
cd authorization_code
config.js.sample
文件重命名为 config.js
:
mv config.js.sample config.js
manifest.yml
文件,并设置您的应用程序名称。您必须为应用程序选择一个唯一名称,这有助于形成它的 URL。如果应用程序的名称是 my-watson-app ,那么您的 URL 将会是 http://my-watson-app.mybluemix.net 。请记住这个 URL,因为有几个地方需要使用它。 清单 1. manifest.yml
applications: - name: ~YOUR_APP_NAME_HERE~ memory: 128M command: node app.js instances: 1 path: . env: NODE_ENV: development
config.js
文件并添加您的应用程序的 URL,以便应用程序知道要重定向到哪个地址。 清单 2. config.js
var config = {}; var port = process.env.PORT || 8888; var my_uri = process.env.VCAP_SERVICES ? 'http://YOUR-APP-NAME.mybluemix.net' : 'http://localhost:' + port; config.url = { port: port, uri: my_uri, redirect_uri: my_uri + '/callback' };
cf api api.ng.bluemix.net
cf login
cf push
该命令会失败。
Creating App
流程后,再使用 Ctrl+C
取消推送。 请注意,因为该推送要求连接到 Watson Translation Service,所以它会 失败 。
如果打开浏览器并转到您的应用程序的 URL,就会看到该应用程序无法正常工作。我们还需要执行几个步骤使其正常运行。
在最后一步中,我们得到了代码,并创建了 Bluemix 应用程序。现在,我们要创建一个 Watson Language Translation 服务,以便将我们的应用程序绑定到该服务。
好极了!您的应用程序现在应该可以正常运行了!让我们回到浏览器,访问应用程序的 URL,查看发生了什么。
目前看起来还不错,让我们试着使用 Spotify 进行登录。
因为我们的应用程序还没有向 Spotify 注册,所以我们得到了一个 Invalid client
错误。继续下一步,查看如何改正这个错误。
请按照下列步骤向 Spotify 注册我们的应用程序。
清单 3. config.js 中的 Spotify Client ID 和 Client Secret
config.spotify = { client_id: 'GET_FROM_SPOTIFY_IN_STEP_3', // Your client id client_secret: 'GET_FROM_SPOTIFY_IN_STEP_3' // Your client secret };
http://
。 Genius.com 是一个网站,托管着一些歌词,以及用户为这些歌曲添加的注释。我们将使用他们的 API 来访问歌词,然后使用 Watson Language Translation 翻译它们。但首先,我们必须注册应用程序,以便得到一个 API 密钥。
清单 4. config.js 中的 Genius Client ID、Client Secret 和 Client Access Token
config.genius = { CLIENT_ID: "GET_FROM_GENIUS_IN_STEP_4", CLIENT_SECRET: "GET_FROM_GENIUS_IN_STEP_4", CLIENT_ACCESS_TOKEN: "GET_FROM_GENIUS_IN_STEP_4" };
在将应用程序推动到云之前进行本地测试,这是一个很好的做法。在本地运行应用程序之前,必须让一些 Bluemix 环境变量变得本地可用。
username
和 password
的值复制并粘贴到您的 config.js 文件中。 清单 5. config.js 中的 Bluemix 凭证
config.watson = { username: 'GET_FROM_BLUEMIX_IN_STEP_2', password: 'GET_FROM_BLUEMIX_IN_STEP_2', version: 'v2' };
在将这些更改保存到您的代码后,您可以本地测试您的应用程序。
npm install
来安装必要的软件包。 node app.js
localhost:8888
。 最后,将我们的应用程序推送到 Bluemix,让全世界的人都能使用该应用程序!
将代码推送到 Bluemix:
cf push
让我们看看我们会获得什么样的歌曲。这里有几个简单的示例问题。
Watson 不算太糟糕,如果让这些歌词萦绕在您的脑海中,答案就会出现。
有些歌曲变化很大,并且大量地使用重复。
嘿,这是一首流行歌曲。
要了解如何添加自己的播放列表,请阅读下面部分。
好了,现在我们已经掌握了完成您的应用程序的所有知识。该应用程序默认情况下会使用三种播放列表:摇滚播放列表、说唱播放列表和甲壳虫乐队播放列表。按照以下这些说明来添加自己的播放列表。(显然,您最好添加一些播放列表,这些播放列表包含具有歌词的一些歌曲。对于喜爱古典音乐和电子音乐的人,我感到万分抱歉。)
要添加自己的播放列表,需要填写以下这些字段:
按照以下步骤找到它们:
public/js/quiz.js
并找到变量 playlist_map
public/index.html
,在其中找到所有播放列表并显示它们。 playlistid=x
添加一行代码,其中的 x 是您在前面两个步骤中使用的秘钥。 Translation Service 只是 Bluemix 上提供的众多 Watson Language Services 中的一个。您认为其他哪些 Watson Services 可用于歌词?
相关主题: Node.js JavaScript