LoginSignup
2
1

More than 5 years have passed since last update.

IBM Bluemix/Watson Speech To Text/Node.jsでApplication開発(4)

Last updated at Posted at 2016-05-15

前回からの続きで、BluemixのDeployについて説明します。

4. bluemixにDeploy
BluemixにDeployするためのフォルダ構造は、以下です。実際にBluemixにDeployする場合は、そのままのフォルダ構造になるようにExploreでフォルダを作成してください。models、routesは不要、実際に開発する場合はnode_modulesがあり.cfignoreで排除指定が必要です。

フォルダ構造
Cドライブ
├── bluemix
  ├── myapp →wavファイル生成Javascriptを配置します(2章のソース)
  ├   ├── app.js, package.json, Procfile
  ├   ├── models →今回のケースでは形式上残してるだけで空フォルダです。
  ├   ├── routes →今回のケースでは形式上残してるだけで空フォルダです。
  ├   ├── view
  ├      ├── test.ejs →wavファイル生成Javascriptを配置します(2章のソース)
  ├
  ├── mystt →STTの音声認識Javascriptソースを配置します。(3章のソース)
     ├── app.js, package.json, Procfile
     ├── models →今回のケースでは形式上残してるだけで空フォルダです。
     ├── routes →今回のケースでは形式上残してるだけで空フォルダです。
     ├── view →今回のケースでは形式上残しておだけで空フォルダです。

STTで音声認識Javascriptソースを最初にDeployします。以下、必要なpackage.jsonとProcfileです。pakage.jsonには、STTのサンプルアプリケーションとしてGithubで公開されているspeech-to-text-nodejs
のpackage.jsonと、ファイルのUploadに使用するformidable(と、それに関連するモノ)を記述しています。

package.json
{
  "name": "mystt",
  "version": "1.0.0",
  "description": "A sample browser app for Bluemix that use the speech-to-text service, fetching a token via Node.js",
  "dependencies": {
  "ejs": "^2.3.4",
  "express": "~4.13.3",
  "watson-developer-cloud": "^1.2.4",
  "cfenv": "1.0.x",
  "formidable": "1.0.17",
  "gently": "0.8.0",
  "findit": "0.1.1",
  "hashish": "0.0.4",
  "urun": "~0.0.6",
  "utest": "0.0.3",
  "request": "~2.11.4"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/watson-developer-cloud/speech-to-text-nodejs.git"
  }
}

procfileは、以下です。ファイル中に、”web: node app”とだけ記述します。
web: node app

cf pushにより、Bluemix上にDeployします。一意なURLを考えるのが面倒だったので、URLは--random-routeオプションでランダム生成されるようにしています。cf pushのコマンド出力に含まれるurlsで、wavファイル生成Javascripソースのapp.jsの'STTで音声認識Javascriptソースが動作するURLを記述'を置換します。

:cf pushのコマンド出力
C:\Users\hoge\.nvmw>cd c:\bluemix\mystt
C:\bluemix\myapp>cf push mystt --random-route
・・・ <cf pushのコマンド出力、省略してます>
requested state: started
instances: 1/1
usage: 1G x 1 instances
urls: mystt-xxxxxxxx.mybluemix.net
package uploaded: Sun May 15 02:20:04 UTC 2016
stack: cflinuxfs2
buildpack: SDK for Node.js(TM) (ibm-node.js-4.4.3, buildpack-v3.3-20160428-1409)
・・・ <cf pushのコマンド出力、省略してます>

次に、wavファイル生成JavascripソースをDeployします(watson-developer-cloudは不要です、削除忘れです)。

package.json
{
  "name": "myapp",
  "version": "1.0.0",
  "description": "A sample browser app for Bluemix that use the speech-to-text service, fetching a token via Node.js",
  "dependencies": {
    "ejs": "^2.3.4",
    "express": "~4.13.3",
    "watson-developer-cloud": "^1.2.4"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/watson-developer-cloud/speech-to-text-nodejs.git"
  }

Procfileは、mysttと同様です。ファイル中に、”web: node app”とだけ記述します。
web: node app

myappフォルダに移動し、app.js(wavファイル生成Javascripソース)の'STTで音声認識Javascriptソースが動作するURLを記述'をmysttのurlsで置換していることを確認、mysttと同様にcf pushを実行します。ここで出力されたurlsをブラウザで実行して適切に動作していることを確認します。

:cf pushのコマンド出力
C:\Users\hoge\.nvmw>cd c:\bluemix\myapp
C:\bluemix\myapp>cf push myapp --random-route
・・・ <cf pushのコマンド出力、省略してます>

5. おわりにに続きます。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1