转载

让 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 NAMEAPP 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. usernamepassword 的值复制并粘贴到您的 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...