转载

让 Watson 成为一名摇滚巨星:使用翻译的歌词测试您的西班牙语

越来越多的活动(通常称为 STEAM 活动)开始将艺术融入到 STEM (科学、技术、工程和数学)中。STEAM 活动旨在激发人们的兴趣,尤其是对 STEM 主题通常不感兴趣的孩子们。艺术是一个广泛的话题,涵盖了音乐、游戏、舞蹈等领域。

Watson 强大的语言工具已被用来分析从危害问题到医疗文档的一切事物。为什么不将 Watson 的专长扩展到艺术和娱乐领域?我们如何使用 Watson 发现艺术的乐趣?既然 Watson 的专长是语言,如果我们将 Watson 应用于歌词会怎样?

“ Watson 强大的语言工具已被用来分析从危害问题到医疗文档的一切事物。为什么不将 Watson 的专长扩展到艺术和娱乐领域? ”

本教程将帮助您了解如何将 Watson 强大的语言处理功能应用于您喜爱的歌曲和歌词。我们将使用一个 Spotify 帐户来检索通俗歌曲的播放列表,然后从 genius.com 获取这些歌曲的歌词,最后使用 Watson Developer Cloud 对歌词做一些好玩和有趣的事情。

在这一期的 “使 Watson 成为一名摇滚巨星” 文章中,我们将使用 Watson Language Translatio 服务将通俗歌曲的歌词翻译成西班牙文,希望能够以有趣、引人入胜和令人难忘的方式帮助想要提高其西班牙语的英语用户。

运行应用程序

在 GitHub 上获取代码

构建一个类似的应用程序需要做的准备工作

  1. 一个 Bluemix 帐户(您可以 在此处请求获得一个免费试用版 。或者,您是否知道, developerWorks Premium 为您提供给了 IBM Bluemix 的 12 个月的订阅,以及关于 Bluemix 的 240 美元的云贷款。
  2. 对Node.js 和 Node.js 开发环境有基本的了解。
  3. 这些 Node.js 模块:
    • Express 框架 ,该框架使得构建 Node.js Web 应用程序变得非常容易。
    • Watson Developer Cloud ,它提供了许多 SDK,使用认知计算来解决复杂问题。
    • RapGenius-JS 模块 ,它提供了一个客户端,支持您查询 genius.com(原先的 rapgenius.com),并检索有关说唱以及摇滚艺人和歌曲的信息。(该资源库是原始 RapGenius-JS 资源库 稍作修改后的一个版本。)
  4. Cloud Foundry CLI 工具
  5. GitHub 命令行

观看: Node.js 入门(视频演示)

阅读: 上传您的 Bluemix 应用程序

阅读: Spotify 授权指南

阅读: Genius API 文档

第 1 步. 从 GitHub 复制应用程序代码,并创建一个 Bluemix 应用程序

该应用程序名为 cuántos caminos ,是 "How many Roads" 的西班牙语翻译,这是 Bob Dylan 的歌曲 "Blowing in the Wind" 的开头几行。该应用程序是让这个商业版的 Bob Dylan + IBM Watson 语言功能 成为现实而迈出的充满希望的第一步。问题是,在声称 Watson 具有人工智能之前,还有多长的路要走?

  1. 转到 cuantos-caminos Git 存储库 ,并单击右上角的 Fork 。
  2. 为您的新存储库提供一个名称。
  3. 在命令行中,切换到您想要存放您的代码的地方,并从 Git 资料库克隆它:

    git clone git@github.ibm.com:YOUR_REPO_HERE/cuantos-caminos.git

  4. 切换到新的存储库:

    cd &lt;<em>your_repo_dir</em>&gt;

  5. 切换到 authorization_code 目录:

    cd authorization_code

  6. 将您的 config.js.sample 文件重命名为 config.js

    :

    mv config.js.sample config.js

  7. 使用您喜欢的文本编辑器打开 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
  8. 编辑 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'   };
  9. 通过使用以下命令将您的应用程序推送到 Bluemix:
    • cf api api.ng.bluemix.net
    • cf login
    • cf push

      该命令会失败。

    • 等到完成 Creating App 流程后,再使用 Ctrl+C 取消推送。

      请注意,因为该推送要求连接到 Watson Translation Service,所以它会 失败 。

如果打开浏览器并转到您的应用程序的 URL,就会看到该应用程序无法正常工作。我们还需要执行几个步骤使其正常运行。

第 2 步. 创建一个 Watson Language Translation 服务,并将您的 Bluemix 应用程序绑定到该服务。

在最后一步中,我们得到了代码,并创建了 Bluemix 应用程序。现在,我们要创建一个 Watson Language Translation 服务,以便将我们的应用程序绑定到该服务。

  1. 登录到您的 Bluemix 帐户 。
  2. 单击 CATALOG 查看可用的 Bluemix 服务。
  3. 检查 Watson 复选框,在左窗格中对服务进行过滤,以便只查看 Watson 服务。找到并单击 Language Translation Service.。或者直接访问 服务页面 。 让 Watson 成为一名摇滚巨星:使用翻译的歌词测试您的西班牙语
  4. 在右边的页面上,在 Add Service 标题下,用以下这些值填写字段:
    • Apps 。从下拉框中选择您最近创建的应用程序。
    • Service Name 。为您的服务指定一个名称。
    • Selected Plan 。从下拉框中选择 Standard 。
    让 Watson 成为一名摇滚巨星:使用翻译的歌词测试您的西班牙语
  5. 单击 CREATE 。然后,重新载入您的应用程序,以便将它绑定到新的服务。

好极了!您的应用程序现在应该可以正常运行了!让我们回到浏览器,访问应用程序的 URL,查看发生了什么。

让 Watson 成为一名摇滚巨星:使用翻译的歌词测试您的西班牙语

目前看起来还不错,让我们试着使用 Spotify 进行登录。

让 Watson 成为一名摇滚巨星:使用翻译的歌词测试您的西班牙语

因为我们的应用程序还没有向 Spotify 注册,所以我们得到了一个 Invalid client 错误。继续下一步,查看如何改正这个错误。

第 3 步. 向 Spotify 注册您的应用程序

请按照下列步骤向 Spotify 注册我们的应用程序。

  1. 转到您的 Spotify 开发人员帐户 来管理您的应用程序。如有必要,请进行登录。
  2. 单击 CREATE AN APP 按钮。
  3. 填写您的应用程序的名称和描述,并单击 CREATE 。 让 Watson 成为一名摇滚巨星:使用翻译的歌词测试您的西班牙语
  4. 我们来到了非常重要的部分。在这个页面上,我们将指定执行身份验证所需的参数。我们需要 Client ID 和 Client Secret 来执行身份验证。还需要设置 Redirect URI,以便 Spotify 在完成身份验证后可以重定向到我们的应用程序。
    • 复制 Client ID 和 Client Secret,并将它们粘贴到您的 config.js 文件中。 让 Watson 成为一名摇滚巨星:使用翻译的歌词测试您的西班牙语

      清单 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                         };
    • 添加两个 Redirect URI: http://YOUR_APP_URL/callback 用于您的 Bluemix 应用程序, http://localhost:8888 用于本地测试。不要忘记 http:// 。 让 Watson 成为一名摇滚巨星:使用翻译的歌词测试您的西班牙语
    • 单击 SAVE 保存您的更改。

第 4 步. 向 Genius.com 注册您的应用程序

Genius.com 是一个网站,托管着一些歌词,以及用户为这些歌曲添加的注释。我们将使用他们的 API 来访问歌词,然后使用 Watson Language Translation 翻译它们。但首先,我们必须注册应用程序,以便得到一个 API 密钥。

  1. 转到 Genius API 客户端站点 。如果您还没有帐户,或者不想创建帐户,那么可以用您的 Twitter、Facebook 或 Google 帐户进行登录。
  2. 在 Create a New API Client 窗口中,填写 APP NAME 和 APP WEBSITE URL 字段,然后单击 Save 。您可以将 REDIRECT URI 字段留空,因为我们不会在 Genius 中进行身份验证。 让 Watson 成为一名摇滚巨星:使用翻译的歌词测试您的西班牙语
  3. 将 CLIENT_ID, CLIENT_SECRET 和 CLIENT_ACCESS_TOKEN 复制并粘贴到您的 config.js 文件中。

    清单 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"                   };

第 5 步(可选). 本地测试

在将应用程序推动到云之前进行本地测试,这是一个很好的做法。在本地运行应用程序之前,必须让一些 Bluemix 环境变量变得本地可用。

  1. 转到您的 Bluemix Dashboard。
  2. 找到您的的应用程序,然后单击它来打开应用程序页面。
  3. 找到 Watson Language Translation Service 并单击 Show Credentials 。 让 Watson 成为一名摇滚巨星:使用翻译的歌词测试您的西班牙语
  4. 将 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'                     };

在将这些更改保存到您的代码后,您可以本地测试您的应用程序。

  1. 切换到项目的根目录。
  2. 运行 npm install 来安装必要的软件包。
  3. 运行 node app.js
  4. 打开浏览器并转到 localhost:8888 。
  5. 使用您的 Spotify 帐户进行登录(如有必要,请使用您的 Facebook 帐户进行登录)。
  6. 选择一个测验来执行,了解 Watson 的实际作用。

第 6 步:推送到 Bluemix

最后,将我们的应用程序推送到 Bluemix,让全世界的人都能使用该应用程序!

  1. 切换到项目的根目录。
  2. 将代码推送到 Bluemix:

    cf push

  3. 转到浏览器查看我们的项目的实际运行情况!

让我们看看我们会获得什么样的歌曲。这里有几个简单的示例问题。

Watson 不算太糟糕,如果让这些歌词萦绕在您的脑海中,答案就会出现。

让 Watson 成为一名摇滚巨星:使用翻译的歌词测试您的西班牙语

有些歌曲变化很大,并且大量地使用重复。

让 Watson 成为一名摇滚巨星:使用翻译的歌词测试您的西班牙语

嘿,这是一首流行歌曲。

让 Watson 成为一名摇滚巨星:使用翻译的歌词测试您的西班牙语

要了解如何添加自己的播放列表,请阅读下面部分。

第 7 步(可选). 添加自己的播放列表供选择。

好了,现在我们已经掌握了完成您的应用程序的所有知识。该应用程序默认情况下会使用三种播放列表:摇滚播放列表、说唱播放列表和甲壳虫乐队播放列表。按照以下这些说明来添加自己的播放列表。(显然,您最好添加一些播放列表,这些播放列表包含具有歌词的一些歌曲。对于喜爱古典音乐和电子音乐的人,我感到万分抱歉。)

要添加自己的播放列表,需要填写以下这些字段:

  • 拥有播放列表的用户的 Spotify ID
  • 播放列表 ID

按照以下步骤找到它们:

  1. 在 Web 浏览器或本机应用程序中转到您的播放列表。
  2. 单击下拉菜单,然后单击 Copy Spotify URI 。 让 Watson 成为一名摇滚巨星:使用翻译的歌词测试您的西班牙语
  3. 转到 angular 文件 public/js/quiz.js 并找到变量 playlist_map 让 Watson 成为一名摇滚巨星:使用翻译的歌词测试您的西班牙语
  4. 使用您的用户 ID 和 Spotify ID 值在映射中创建一个秘钥。
  5. 转到 html 文件 public/index.html ,在其中找到所有播放列表并显示它们。 让 Watson 成为一名摇滚巨星:使用翻译的歌词测试您的西班牙语
  6. 使用 playlistid=x 添加一行代码,其中的 x 是您在前面两个步骤中使用的秘钥。

结束语

Translation Service 只是 Bluemix 上提供的众多 Watson Language Services 中的一个。您认为其他哪些 Watson Services 可用于歌词?

  • Sentiment Analysis 服务可以跟踪歌曲的总体情绪,然后生成迎合某种情绪的播放列表。
  • Concept Insights 服务可以提取歌唱艺术家所歌唱的概念,并对它们进行对比和比较。
  • Relationship Extraction (Alchemy API) 服务可以找到歌曲中的主题、行为和对象之间的关系,并构建一个歌词工具数据库,以便生成新的歌曲。

相关主题: Node.js JavaScript

原文  http://www.ibm.com/developerworks/cn/cognitive/library/cc-watson-rockstar-language-translation-lyrics-bluemix-trs/index.html?ca=drs-
正文到此结束
Loading...