PR

 スマートスピーカーが広く使われるようになったことで、音声による入出力、いわゆる「VUI(Voice User Interface)」も注目が集まっている。

 スマートスピーカーで利用されるコンピュータによる音声合成について、「全く違和感なく聞けるようになってきた」という印象を持っている読者も多いのではないだろうか。スマートスピーカー向けアプリの場合、人間の声といった音声による入力を受け付けた後に、それに答える形で音声合成を行い、再生する仕組みだ。

 音声合成や、合成した声の出力が求められるのはスマートスピーカーだけではない。またスマートスピーカーを使わず、音声入力なしに音声出力だけが必要な場合もあるだろう。デジタルサイネージを使って音声案内をするといったケースもあるだろうし、身近なところではスマートフォン向けのアプリでも頻繁に利用されている。

 時間や天気など音声による案内はすでに一般的になっている。ではこれまでの音声案内と、近年普及してきた音声合成との違いは何だろうか。定型的な音声案内であれば事前に音声ファイルを用意して、それを再生するだけで済む。ところがスマートスピーカーによる入力への応答のように、状況に合わせて動的に内容を変えなければならない場合には音声合成の仕組みが必要になってくる。

 近年は任意のテキストを動的に合成し、あたかも人が話しているかのような自然な合成ができるようになっている。実際のラジオ放送で、天気予報やニュースを音声合成で読み上げる事例も登場しているほどだ。

31種類の声を操作できるNTT corevo API

 音声合成の実現を支援するのが、クラウド系の音声合成サービスだ。クラウド系の音声合成サービスは数多く登場しているが、今回は日本語の音声合成を得意とするNTTグループのAI(人工知能)「corevo(コレボ)」のサービスの1つである「音声合成API」を紹介しよう。音声合成APIは、現在は無料で提供されている。

 NTT corevoの音声合成APIを利用するためには、まずはユーザー登録をする。そして、アカウント名とパスワードでcorevo APIポータルにログインする(図1)。

図1●NTT corevo APIのポータル画面例
図1●NTT corevo APIのポータル画面例
[画像のクリックで拡大表示]

 このポータルでは、音声合成APIの仕様書が公開されている。また、アプリケーション登録を行うことでAPIキーの払い出しが行われる。実際にAPIを利用するアプリケーション側では、このAPIキーをリクエストに含める必要がある(図2)。

図2●アプリケーション登録の画面例
図2●アプリケーション登録の画面例
[画像のクリックで拡大表示]

 この音声合成APIは、特定のURLに対して合成したい文章テキストや、必要に応じてパラメーターを付けてリクエストを送信する。実際には以下のようなJSONデータをPOSTすることになる。

{
  "Command" : "AP_Synth",
  "SpeakerID" : "000‐00‐0‐113",
  "SpeechRate" : 1.5,
  "textData" : "こんにちは"
 }

 リクエストが成功すると、音声合成で生成されたwav形式の音声ファイルを、Base64形式にエンコードしたデータとして返してくれる。前述のサンプルのJSONを使ってリクエストすると、少しだけ話速を速くしたナレーター調の女性の声で「こんにちは」と話すことになる。

 ではこのAPIでは、どのようなパラメーターが用意されているのか。以下で紹介しよう。

 まずは話者だ。男性・女性の2パターンだけではなく、なんと31パターンも用意されている。女性だけでも落ち着いた女性、ハスキーな声の女性、お婆さん、女児といった種類がある。これだけでも十分に選択肢があるように見えるが、もっと細かいチューニングにも対応している。音質(太い・細い)、話速、抑揚の大きさ、声の高さなどを調整可能だ。さらに、句点、読点でのポーズ(一時停止)の時間調整までもできる。

 このようにパラメーターは多岐にわたるが、細かい設定はできずに、あくまでもパラメーターは合成したいテキスト全体に適用される。

 特定の部分だけ話者や話速を変えたいといった微調整が必要な場合は、「SSML(Speech Synthesis Markup Language)」を利用する。SSMLは、国際標準化団体W3Cで策定されたXMLベースの音声合成マークアップ言語だ。NTT corevo音声合成APIは、SSMLにも対応している。

 次の例は、特定の「助けて」部分だけを女性の声に変えて合成した場合のSSMLだ。

<?xml version="1.0" encoding="UTF‐8"?>
<!DOCTYPE speak SYSTEM "ssml.dtd">
<speak version="1.0" xmlns="http://www.w3.
org/2001/10/synthesis" xml:lang="japanese">
彼女は
<voice gender="female">「助けて!」</voice>
と言いました。
</speak>

 筆者はNTT corevo音声合成APIを手軽に扱うためのNode.jsモジュールをGitHubに公開している。Node.js本体がインストールされた環境であれば、Windows、macOS、Linuxで動作する。また、合成された音声を自動的に再生する機能もある。このモジュールはNTT corevo音声合成APIがサポートしているすべてのパラメーターに対応している。

 現時点でNTT corevo音声合成APIは無料トライアルのため商用利用はできないが、アイデアがあれば、まずは概念実証などに使うのもよいだろう。

NTT corevo APIs

node-corevo-tts

羽田野 太巳(はたの ふとみ)
futomi 代表取締役社長、ニューフォリア取締役 最高技術責任者
羽田野 太巳(はたの ふとみ) Webシステム開発およびWebコンサルティングに携わる。HTML5の気運が高まる以前からHTML5の探求を始め、HTML5専門サイト「HTML5.jp」を立ち上げ、HTML5の普及啓蒙に関わる。HTML5関連書籍や雑誌記事執筆も行う。現在は、Webベースのアプリケーション開発やデジタルサイネージ・システムの研究開発の指揮を執る。