OHNO[DIRECTOR]昔は腹筋割れてたTweetまずはこちらをどうぞ。Text-to-Speechとは?■調べるきっかけ最近は、合成音声の質が上がってきましたよね。昔よりも流暢に喋るし、ちゃんと聞き取ってくれます。Cloudが大型アップデートしたので、ちょっと触ってみようってことで記事にしてみました。Text-to-Speechを使うと、自然な会話音声を合成できます。現在14の言語と方言に対応しており、30種類以上の音声を利用できます。Googleの機械学習を搭載し、高度なディープラーニングのニューラルネットワークアルゴリズムを利用して、自然な発音の音声を合成することができます。Text-to-Speechのアップデートで、それまで英語版にしかなかったWaveNetが搭載されました。そのおかげで、日本語版もより人間の肉声に近い音声の発話が可能になりました。初期のモデルに比べて、1000倍の速度で音声を合成できるようになったことや生成の忠実度も高くなったことで、APIが一般的に利用可能になったと言われています。AlphaGoの開発元「DeepMind」が作ったもので、人工ニューラルネットワークによる音声合成アルゴリズムの1つです。文章の流れを読み取って、単語や文章同士を繋ぐ間も理解し、より人間に近い発話が可能となっています。すごいってことですね(語彙力)とりあえず、聞き比べてみましょう。“ja-JP-Standard-A”https://co-lab.contents.ne.jp/wp/wp-content/uploads/2018/10/standard.mp3“ja-JP-Wavenet-A”https://co-lab.contents.ne.jp/wp/wp-content/uploads/2018/10/waveNet.mp3もう全然違いますよね。生成時間もほぼ変わらずでした。Platformで提供されているAPIを使用して試してみました。APIを使うまでの方法を書こうと思ったのですが、すでに記事がたくさんあるので、詳しいことはググってお試しください。箇条書きにはしておきます。上記の方法で、APIが使用できるようになります。APIはどうやって使う?今回はJSON形式でAPIを使用してみます。SDKをインストールしたフォルダ(/Users/ohno/google-cloud-sdk/)にtestフォルダを作成し、input.jsonという名前でこんなJSONファイルを作成します。"ためになることや、そうでないことまで。やりたいことオンリーな研究所。}}そして、curlコマンドでAPIにリクエストを投げて、戻ってきたデータをsynthesize.txtとして保存します。/Users/ohno/google-cloud-sdk/test/synthesize.txtsynthesize.txtの中身はこんな感じでかなり長いエンコードされた音声データが入っています。“ここ”の部分だけ抜き出して保存して、音声データに変換するのですが、ファイル開いて選択して保存してコマンド叩くだと、面倒なのでsedコマンドで一発で変換してしまいます。output*.txtそうするとこんな音声データができます。https://co-lab.contents.ne.jp/wp/wp-content/uploads/2018/10/co-lab_st.mp3JSONの値についてこちらのリファレンスで見ることができますが、日本語で指定できるもので、わかる範囲で解説したいと思います。現状ではこちらからどの言語が指定できるのかの確認ができます。Wavenetを使用して合成します。通常の仕様で合成します。Androidとブラウザ(少なくともChromeとFirefox)でネイティブに再生できるファイル。上記のように、喋るスピードやピッチ、話すボリューム等を変更できます。声の種類は現状だと女性の声しか選べません。こちらが変更したものになります。Language)を使うことで、複雑な表現をすることができます。「シーオーラブドット」ってなんじゃい!とツッコんでくれてたことを期待して書いてますが、SSMLを使うことでちゃんと「コラボ」と言わせることができます。(発音までは無理でした。)テキストでも「コラボ」や「こらぼ」にすれば良くね?って思った方は全くその通りですが、お付き合いください。<p>ためになることや、そうでないことまで。<p>やりたいことオンリーな研究所。</speak>"}上記のように”<speak>タグで囲み、音声合成マークアップ言語で書くことにより、細かい調整をすることができます。alias=\”コラボ\”>でCo-Lab.の読み方を指定させています。https://co-lab.contents.ne.jp/wp/wp-content/uploads/2018/10/co-lab_ssml.mp3ちなみに最初の音声はこんな感じでタグを指定していました。<p><s>元フロントエンドエンジニア、現Webディレクターの大野です。Text-to-Speechについてお話ししたいと思います。Text-to-Speechを使うと、自然な会話音声を合成できます。<p>現在14の言語と方言に対応しており、30種類以上の音声を利用できます。<p>Googleの機械学習を搭載し、高度なディープラーニングのニューラルネットワークアルゴリズムを利用して、自然な発音の音声を合成することができます。pitch=\"-2st\">そ、そんなわけないじゃないですか。}}使用できるタグのリファレンスはここから確認できます。audioタグを使えば音源を入れ込めますし、parタグを使えば一度に複数のmediaを並列に再生することができるので、BGMを流しながら発音することなんかもできます。https://co-lab.contents.ne.jp/wp/wp-content/uploads/2018/10/audio.mp3調整微妙ですが、歌わせることも笑https://co-lab.contents.ne.jp/wp/wp-content/uploads/2018/10/song.mp3他にもあるText-to-Speechのサービス上記で説明した以外にも、有名なText-to-Speechがあります。Pollyの違い細かい違いは多々あるのですが、ざっくりと調べた感じだとこんな感じでしょうか。男性と女性の声を選べる現在はMizuki(女性)の声とTakumi(男性)の声があります。Mizuki(女性)https://co-lab.contents.ne.jp/wp/wp-content/uploads/2018/10/ap_mizuki.mp3Takumi(男性)https://co-lab.contents.ne.jp/wp/wp-content/uploads/2018/10/ap_takumi.mp3発音のカスタマイズができる発音のカスタマイズとはどういうことかというと、入力されたテキストに対して発音を決められるということです。「Co-Lab」と入力されたら、一般的な言葉ではないのでアルファベットで読んでしまうのは仕方ないですし、ユーザーが入力したテキストを喋らせるときに「コラボ」と書かせるのは難しいですよね。レキシコンというファイルを適応させることで、単語などを登録させることができます。下記のようにXMLで指定します。</lexeme></lexicon>細かい概要はこちらから確認してください。上の画像から生成された音声がこちらhttps://co-lab.contents.ne.jp/wp/wp-content/uploads/2018/10/ap_colab.mp3SSMLでAmazon独自のタグが使えます。name="whispered">上記の中でもいい感じだったのがウィスパーですね。寝起きドッキリみたいな合成音声ができます笑https://co-lab.contents.ne.jp/wp/wp-content/uploads/2018/10/ap_effect.mp3最後にいかがだったでしょうか?本当は、もっと色々試したかったのですが、次回の記事でお伝えできればしようと思います。合成音声を調べているうちに気になるシステムやアプリが色々出てきました。技術は日々進化しているので、乗り遅れないように情報はきちんと追っていかなくてはいけませんね。Co.,Ltd.MEMBERABOUTCONTACT。