harukeeeのブログ

@harukeee が書いています。

IBM Watson の Speech To Text でラジオの文字起こし(その1)

www.ibm.com

radiko.jp でラジオを聴いていて前からやってみたかったので試してみたいと思います。

AI 界で GoogleMicrosoft が頻繁にニュースを賑わせていますが、IBM もがんばっています。
IBM Watson の音声 to テキストサービスは日本語に対応してて、無料で試すことができます。

(手軽に試すならこちら)
Speech to Text Demo



環境の概要



音声ファイルの用意

音声ファイルは、16Khz の FLACファイル形式 を用意します。

Speech To Text は MP3 にも対応していますが、周波数を 16Khz に落とす必要があるので、
どうせなら推奨の FLAC ファイル形式にします。

作成には、一般的(?)な音声編集ソフト「Audacity」を使います。
「Audacity」フリーの波形編集ソフト - 窓の杜ライブラリ

超簡単な説明だけ図に載せてますが、要は左下で周波数を変更します。
f:id:harukeee:20180510020649p:plain

あとはFLACファイルで出力です。
[ファイル] → [オーディオの書き出し] で「ファイルの種類」を FLACファイル にして保存です。




Curl コマンドの準備

環境は手軽に WSL(Windows Subsystem for Linux )機能で UbuntuLinux)を使います。
WindowsUbuntu を使う方法は下記を参照してください。

Microsoft ストア版 Ubuntu を入れてみる。 - harukeeeのブログ

Ubuntu が用意できたら、次に下記のコマンドで Curl をインストールします。

sudo apt-get install curl

最初から入っていた気もしますが・・・まあ、アップデートされるだけですから。

WindowsCurl もありますが、遊び終わったら Ubuntu ごと捨てられるのでオススメ。




IBMアカウント登録

上記のサイトの IBM Watson のサイトに行き、My IBM にユーザー登録をします。
登録後、「My IBM ダッシューボード」から「IBM Cloud」を開きます。

このあたりの説明は省略します。
IBM は日本リージョン(サーバー設置国)がないので「場所」は適当に選んで下さい。
(下記の参考画像にもありますが、既定値は米国南部だったはず。)

[リソースの作成] を開き、左メニューから「Watson」を選択、一覧から[Speech To Text]を選択。
価格プランはとりあえず無料の「Lite」を選択し、画面下のボタンで「作成」します。
f:id:harukeee:20180510005948p:plain

作成できたら左上の「IBM Cloud」。サービス一覧に「Speech To Text-gx」が表示されます。
f:id:harukeee:20180510010612p:plain

サービスをクリックして開くとAPIの資格情報が表示されます。
「表示」を押すと●●●部分が見えるようになりますので、メモる。
f:id:harukeee:20180510010710p:plain

これで Speech To Text の利用準備は一旦完了です。




Text To Speechを使ってみる

早速、UbuntuCurl コマンドで Text To Speech に音声ファイルを投げてみましょう。

まずコマンド例を示します。

curl -X POST -u {username}:{password}
--header "Content-Type: audio/flac"
--data-binary @/mnt/c/Users/Administrator/Desktop/eva.flac
"https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?model=ja-JP_BroadbandModel"

コマンドは1行で入力 します。上記は説明の都合上、改行しているだけになります。

-- コマンド説明
1行目の「{username}:{password}」の部分を先程取得した●●●に置き換えます。
中括弧{}は不要です。

2行目は「--data-binary @音声ファイルパス」です。
Ubuntu上からは、Cドライブ等は「/mnt/」配下にあります。あとはWindows上と同じです。
音声ファイルをDドライブ直下に置いた場合は「/mnt/d/eva.flac」となります。

3行目は Speech To Text の音声ファイルを投げるURLなので触る必要はありませんが、
URL内の「model」で言語が変更できるようになっています。つまり対応言語です。
https://console.bluemix.net/docs/services/speech-to-text/input.html#input

これを踏まえて、実際にCurlコマンドを叩いてみましょう。コマンドは1行で入力 してくださいね。 結果取得にかかる時間は、音声ファイルの時間に比例します。ってゆーか、たぶん向こうで再生してる予感。。

こちらが結果例になります。

{
      {
         "alternatives": [
            {
               "confidence": 0.608,
               "transcript": "はい 私 も ですね 番組 アカウント 使って つぶやいて おります ので ご一緒 に ね で 盛り上げて ください ハッシュ タグ は エバ t FM です ね れば 家 です よろしくね D_ソノ エバンジェリスト スクール "
            }
         ],
         "final": true
      },
      {
         "alternatives": [
            {
               "confidence": 0.965,
               "transcript": "この 番組 は 日本 経済 新聞 電子 版 の 提供 で お送り 致し ます "
            }
         ],
         "final": true
      }
   ],
   "result_index": 0
}

ナレーション部分は問題なさそうですが、普通に話すとイマイチなようです。
番組MCの西脇さん、とてもキレイな日本語なんですけども・・・

という事で次は改善方法。
「その2」でカスタムモデル編を書く予定です。