Watson Speech to Text の使い方 日本語音声をテキストに変換してみよう

Watson Speech to Text の使い方 日本語音声をテキストに変換してみよう
あぱーブログ
2017年12月11日  カテゴリー:WEB  タグ: , ,
Pocket
LINEで送る

IBM Watson の Speech to Text は、ディープ・ラーニングを活用して音声を認識しテキストに変換してくれるサービスです。IBM Cloud のライト・アカウントで一定の範囲内であれば無料で使えます。そこで今回は、Watson の Speech to Text を使って日本語音声をテキストに変換する手順をまとめてみました。

5秒で試せる Speech to Text

Speech to Text のデモサイトで、Voice Model を日本語(Japanese)にしてブラウザに向かって話す、もしくは音声ファイル(.mp3, .mpeg, .wav, .flac, .opus)をアップロードするだけで試せます。利用登録も必要ありません。

Speech to Text のデモサイト

IBM Cloudライト・アカウントの登録

Watson Speech to Text は、IBM Cloud(以前は Bluemix と呼ばれていました)のサービスのひとつです。そのため Speech to Text の API を直接使うには IBM Cloud の利用登録が必要になります。

IBM Cloud には、「ライト・アカウント」というクレジットカード登録不要で Watson など主要なサービスを一定範囲内で使うことができるアカウントありますので、まずはじめにこちらを登録します。

登録は IBM Cloudライト・アカウントのページ から行います。登録に必要な入力項目は、メールアドレス、氏名、電話番号だけです。

ライト・アカウントの登録画面

Speech to Text サービスの作成

IBM Cloudライト・アカウントの登録が終わったら、IBM Cloud のコンソールにログインして、画面左上の「カタログ」をクリックします。

IBM Cloud のコンソール画面

左メニューのいちばん下の「Watson」をクリックします。(ライト・アカウントでログインした場合は、初期状態でライトプランのみ表示するようにサービスカタログが「label:ライト」でフィルタされています)

「Watson」をクリック

ライト・アカウントで使える Watson API が表示されますので、「Speech to Text」をクリックします。

「Speech to Text」をクリック

デプロイする地域/ロケーションの選択で「米国南部」を選択し、「作成」をクリックします。(ライト・アカウントでは地域を「米国南部」に選択する必要があります)

デプロイする地域/ロケーションの選択で「米国南部」を選択

サービス資格情報の作成

Speech to Text API の利用認証に使うサービス資格情報を作成します。

「サービス資格情報」をクリックします。

「サービス資格情報」をクリック

「新規資格情報」をクリックします。

「新規資格情報」をクリック

適当な「名前」を入力して「追加」をクリックします。

「名前」を入力して「追加」をクリック

追加した資格情報を表示して「username」と「password」をメモしておきます。

追加した資格情報を表示

音声ファイルの準備

Watson Speech to Text は、以下の音声フォーマットや言語に対応しています。(2017年12月11日現在)

音声フォーマット:FLAC, MP3, PCM, WAV, Ogg, WebM, Mu-law/u-law
サポート言語:ブラジル・ポルトガル語、フランス語、日本語、中国語(標準)、アラビア語、スペイン語、イギリス英語、アメリカ英語

https://www.ibm.com/watson/jp-ja/developercloud/speech-to-text.html より引用

今回は、下の原稿を自分で読んでFLAC形式(ステレオ/44.1kHz)の音声ファイルにしました。パソコンの内臓マイクで録音した上にあまり滑舌もよくありません(^^;) はたしてちゃんと認識してくれるのでしょうか?

■青森県八戸市で古くから愛される郷土料理「せんべい汁」
漁や狩りでとった獲物を具材にした汁ものに、
ちぎった「南部せんべい」を入れて食べたのが「せんべい汁」の始まりです。
ダシ汁がたっぷりしみ込んでいる煎餅の不思議な食感を楽しめます

きっと役に立つボイスサンプル原稿集 | スタジオシグナル より引用

音声ファイルをテキストに変換

作成した音声ファイルを Speech to Text API に送信してテキストに変換します。日本語の場合のリクエストの書式は次の通りです。

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

curl -X POST -u {username}:{password}
 先ほどメモしたサービス資格情報の username と password を指定します。例えば username が「foo」、password が「secret」の場合は、「curl -X POST -u foo:secret」になります。

--header "Content-Type: audio/flac"
 音声ファイルのフォーマットを指定します。1回のリクエストで最大100MBまでの音声ファイルの送信が可能です、MP3など圧縮をサポートした形式にも対応しています。
 公式ドキュメント:Speech to Text Audio formats | IBM Cloud 資料

--data-binary @{path_to_file}audio-file.flac
 音声ファイルのパスを「@」に続けて指定します。例えば音声ファイルのパスが /tmp/audio-file.flac の場合は、「--data-binary @/tmp/audio-file.flac」になります。

"https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?model=ja-JP_BroadbandModel"
 リクエストの送信先 Speech to Text API のURLです。「?model=<モデル名>」の形式でどこの国の言葉で話しているかを指定します。ブラジル・ポルトガル語、フランス語、日本語、中国語(標準)、アラビア語、スペイン語、イギリス英語、アメリカ英語がサポートされています。(2017年12月11日現在)対応するモデル名は公式ドキュメントでご確認ください。
 公式ドキュメント:Speech to Text Input features | IBM Cloud 資料

 
リクエストを送信してしばらくすると下のようなレスポンスが返ってきます。特に滑舌のよくない2行目以外は、完璧に変換されています。confidence は、0 から 1 の値で変換の確信度を示しています。数値が高いほど正しく変換している可能性が高くなります。

{
"results": [
{
"alternatives": [
{
"confidence": 0.88,
"transcript": "青森県 八戸市 で 古く から 愛 される 郷土 料理 せんべい 汁 "
}
],
"final": true
},
{
"alternatives": [
{
"confidence": 0.63,
"transcript": "領野 仮 で 撮った 獲物 ござい に した 汁物 に "
}
],
"final": true
},
{
"alternatives": [
{
"confidence": 0.753,
"transcript": "ちぎった 南部 せんべい を 入れて 食べた のが せんべい 汁 の 始まり です "
}
],
"final": true
},
{
"alternatives": [
{
"confidence": 0.896,
"transcript": "だし汁 が たっぷり 染み込んで いる せんべい の 不思議な 食感 を 楽しめ ます "
}
],
"final": true
}
],
"result_index": 0

おわりに

Watson Speech to Text は、テキストへの変換精度のすばらしさはもちろんですが、ボイスレコーダーなどで一般的に使われている MP3形式(ステレオでもOK)にも対応しているのが便利ですね。

スポンサーリンク
Pocket
LINEで送る

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です