© 2016 FUJITSU TEN LTD.
Text – to – Speech
Lighting Talk 第3回
大村 祐司
© 2016 FUJITSU TEN LTD.
■ Raspberry Pi
Raspberry Pi(ラズベリー パイ)は、ARMプロセッサを搭載したシングルボードコンピュータ。
イギリスのラズベリーパイ財団(英語版)によって開発されている。
日本ではラズパイとも呼ばれる。
(wikipediaより)
背景
2
iPhone 5
・小さい
・OS(Linuxベース)をインストールできる
・最新のはwifi, BTモジュールが標準装備
・消費電力が小さい
© 2016 FUJITSU TEN LTD.
■ 利用例
・エアコンの遠隔操作
・Twitterなど、SNSのBOT
・エアコンに限らず家電の一括管理
・部屋、家の監視カメラシステム
・Googleカレンダーと連携した秘書システム
etc…
背景
3
© 2016 FUJITSU TEN LTD.
■ 利用例
・エアコンの遠隔操作
・Twitterなど、SNSのBOT
・エアコンに限らず家電の一括管理
・部屋、家の監視カメラシステム
・Googleカレンダーと連携した秘書システム
etc…
背景
4
© 2016 FUJITSU TEN LTD.
■ Googleカレンダーと連携した秘書システム
< http://www.infiniteloop.co.jp/blog/2014/03/yukkuri-hisho/ >
・「Googleカレンダー API」を用いてXML形式でカレンダー情報取得
・XML形式のデータをテキスト形式に整形
・テキスト形式に整形したデータを音声読み上げソフトで読み上げる
背景(作りたいもの)
5
上記URLにPHPで作成したサンプルあ
り
「AquesTalk Pi」という音声合成ソフトで
読み上げている
© 2016 FUJITSU TEN LTD.
■ Googleカレンダーと連携した秘書システム
< http://www.infiniteloop.co.jp/blog/2014/03/yukkuri-hisho/ >
・「Googleカレンダー API」を用いてXML形式でカレンダー情報取得
・XML形式のデータをテキスト形式に整形
・テキスト形式に整形したデータを音声読み上げソフトで読み上げる
背景(作りたいもの)
6
上記URLにPHPで作成したサンプルあ
り
「AquesTalk Pi」という音声合成ソフトで
読み上げている
せっかく作るのなら自分の好きな
声質を音声合成させたい
© 2016 FUJITSU TEN LTD.
■音声合成の大別
・波形接続型音声合成
文節、単語、一文字など、音声を分割して録音し、順番に再生することで
音声を再生する
→ メリット:単語ごとなど、適切な単位ごとに録音すると
自然な音声合成ができる
デメリット:自然な音声合成を行うにはデータ量が膨大となる
用意していない音声は再生できない
・フォルマント合成
録音された音声データから基底周波数、音色、雑音レベルなどのパラメータを
学習し、その学習した結果(音響モデル)から音声を生成する
→ メリット:音声データ自体を持つわけではないので、データ量が小さい
発生させる内容、ピッチ、話速などを簡単に調整できる
デメリット:波形接続型に比べ、少しロボット的に聞こえる
自分の好きな声質で合成音声
7
© 2016 FUJITSU TEN LTD.
■音声合成の大別
・波形接続型音声合成
文節、単語、一文字など、音声を分割して録音し、順番に再生することで
音声を再生する
→ メリット:単語ごとなど、適切な単位ごとに録音すると
自然な音声合成ができる
デメリット:自然な音声合成を行うにはデータ量が膨大となる
用意していない音声は再生できない
・フォルマント合成
録音された音声データから基底周波数、音色、雑音レベルなどのパラメータを
学習し、その学習した結果(音響モデル)から音声を生成する
→ メリット:音声データ自体を持つわけではないので、データ量が小さい
発生させる内容、ピッチ、話速などを簡単に調整できる
デメリット:波形接続型に比べ、少しロボット的に聞こえる
自分の好きな声質で合成音声
8
再生する音声を(単語ごと)を用意
順番に再生することで自然な音声を生成
データが多いので、容量と手間が大きくかかる
録音データから、発話者の声の特徴を捉えてデータ化
小さいデータで動的に発話内容を変えられる
人工の音声なので、少し違和感がある
© 2016 FUJITSU TEN LTD.
■音声合成の大別
・波形接続型音声合成
文節、単語、一文字など、音声を分割して録音し、順番に再生することで
音声を再生する
→ メリット:単語ごとなど、適切な単位ごとに録音すると
自然な音声合成ができる
デメリット:自然な音声合成を行うにはデータ量が膨大となる
用意していない音声は再生できない
・フォルマント合成
録音された音声データから基底周波数、音色、雑音レベルなどのパラメータを
学習し、その学習した結果(音響モデル)から音声を生成する
→ メリット:音声データ自体を持つわけではないので、データ量が小さい
発生させる内容、ピッチ、話速などを簡単に調整できる
デメリット:波形接続型に比べ、少しロボット的に聞こえる
自分の好きな声質で合成音声
9
再生する音声を(単語ごと)を用意
順番に再生することで自然な音声を生成
データが多いので、容量と手間が大きくかかる
録音データから、発話者の声の特徴を捉えてデータ化
小さいデータで動的に発話内容を変えられる
人工の音声なので、少し違和感がある
© 2016 FUJITSU TEN LTD.
■音声合成の大別
・波形接続型音声合成
文節、単語、一文字など、音声を分割して録音し、順番に再生することで
音声を再生する
→ メリット:単語ごとなど、適切な単位ごとに録音すると
自然な音声合成ができる
デメリット:自然な音声合成を行うにはデータ量が膨大となる
用意していない音声は再生できない
・フォルマント合成
録音された音声データから基底周波数、音色、雑音レベルなどのパラメータを
学習し、その学習した結果(音響モデル)から音声を生成する
→ メリット:音声データ自体を持つわけではないので、データ量が小さい
発生させる内容、ピッチ、話速などを簡単に調整できる
デメリット:波形接続型に比べ、少しロボット的に聞こえる
自分の好きな声質で合成音声
10
再生する音声を(単語ごと)を用意
順番に再生することで自然な音声を生成
データが多いので、容量と手間が大きくかかる
録音データから、発話者の声の特徴を捉えてデータ化
小さいデータで動的に発話内容を変えられる
人工の音声なので、少し違和感がある HTK = Hidden Markov ToolKit
© 2016 FUJITSU TEN LTD.
参考:<http://mahoro-ba.net/e1876.html>
(詳細な手順は参考URL)
・Linux環境を構築する(2h)
・音声データから音響モデルを学習するプログラム環境を構築する(4h)
・音声データを用意する(6h)
・音声データから音響モデルを作る(1h)
・パラメータを調整する
音響モデル作成
11
© 2016 FUJITSU TEN LTD.
参考:<http://mahoro-ba.net/e1876.html>
(詳細な手順は参考URL)
・Linux環境を構築する(2h)
・音声データから音響モデルを学習するプログラム環境を構築する(4h)
・音声データを用意する(6h)
・音声データから音響モデルを作る(1h)
・パラメータを調整する
音響モデル作成
12
VMWare + Ubuntu
© 2016 FUJITSU TEN LTD.
参考:<http://mahoro-ba.net/e1876.html>
(詳細な手順は参考URL)
・Linux環境を構築する(2h)
・音声データから音響モデルを学習するプログラム環境を構築する(4h)
・音声データを用意する(6h)
・音声データから音響モデルを作る(1h)
・パラメータを調整する
音響モデル作成
13
HTKのメインプログラムが公式HPからDLできないのでgit-hubから落とす
© 2016 FUJITSU TEN LTD.
参考:<http://mahoro-ba.net/e1876.html>
(詳細な手順は参考URL)
・Linux環境を構築する(2h)
・音声データから音響モデルを学習するプログラム環境を構築する(4h)
・音声データを用意する(6h)
・音声データから音響モデルを作る(1h)
・パラメータを調整する
音響モデル作成
14
© 2016 FUJITSU TEN LTD.
■ATR503文
・学習時によく使われる文章
・これである必要は無いが、音素バランスの良い文章群なので使えるなら使う
(学習データとして優れている文章)
001 : a01 : あらゆる現実を、すべて自分のほうへねじ曲げたのだ。
002 : a02 : 一週間ばかり、ニューヨークを取材した。
003 : a03 : テレビゲームやパソコンで、ゲームをして遊ぶ。
004 : a04 : 物価の変動を考慮して、給付水準を決める必要がある。
005 : a05 : 救急車が十分に動けず、救助作業が遅れている。
・
・
・
音響モデル作成
15
© 2016 FUJITSU TEN LTD.
参考:<http://mahoro-ba.net/e1876.html>
(詳細な手順は参考URL)
・Linux環境を構築する(2h)
・音声データから音響モデルを学習するプログラム環境を構築する(4h)
・音声データを用意する(6h)
・音声データから音響モデルを作る(1h)
・パラメータを調整する
音響モデル作成
16
© 2016 FUJITSU TEN LTD.
■音声データから音響モデルを作る
・学習用音声データを変換する
→ .wavファイルに対し音声認識を行い、音声データの音素情報を
取得する(音素ラベル生成)
→ .wavファイルからヘッダ情報を除き.rawファイルへ変換する
・音声データ(.raw)ファイルと音素ラベルファイルを用いて、
HTKによる機械学習を行い、音響モデルを作成する
音響モデル作成
17
© 2016 FUJITSU TEN LTD.
■音声データから音響モデルを作る
・学習用音声データを変換する
→ .wavファイルに対し音声認識を行い、音声データの音素情報を
取得する(音素ラベル生成)
→ .wavファイルからヘッダ情報を除き.rawファイルへ変換する
・音声データ(.raw)ファイルと音素ラベルファイルを用いて、
HTKによる機械学習を行い、音響モデルを作成する
音響モデル作成
18
.wavファイルの何フレーム目が何の音
に当てはまるのかをデータ化する
© 2016 FUJITSU TEN LTD.
参考:<http://mahoro-ba.net/e1876.html>
(詳細な手順は参考URL)
・Linux環境を構築する(2h)
・音声データから音響モデルを学習するプログラム環境を構築する(4h)
・音声データを用意する(6h)
・音声データから音響モデルを作る(1h)
・パラメータを調整する
音響モデル作成
19
© 2016 FUJITSU TEN LTD.
参考:<http://mahoro-ba.net/e1876.html>
(詳細な手順は参考URL)
・Linux環境を構築する(2h)
・音声データから音響モデルを学習するプログラム環境を構築する(4h)
・音声データを用意する(6h)
・音声データから音響モデルを作る(1h)
・パラメータを調整する
音響モデル作成
20
勉強中
© 2016 FUJITSU TEN LTD.
○openJTalkをインストールする
sudo apt-get install open-jtalk
○openJTalkに必要なファイル(辞書ファイル、サンプル音響モデル)をインストールする
sudo apt-get install open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001
○openJTalkを実行するためのスクリプトを作成する
- 音響モデルのパスとかピッチなどを設定したりする
- また、openJTalkは必ずwavを出力するので、
そのwavを再生し、削除する
#!/bin/sh
TMP=/tmp/jsay.wav
echo "$1" | open_jtalk 
-m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice 
-x /var/lib/mecab/dic/open-jtalk/naist-jdic 
-ow $TMP && 
aplay --quiet $TMP
rm -f $TMP
○スクリプトを実行する
./jsay.sh (しゃべらせたい文字列)
OpenJTalk 導入から実行まで
21
音響モデルの指定
作ったものに差し替える
© 2016 FUJITSU TEN LTD.
最後に
22
© 2016 FUJITSU TEN LTD.
ご清聴
ありがとうございました
23

Oftec lighting talk_第三回 Text to Speech

  • 1.
    © 2016 FUJITSUTEN LTD. Text – to – Speech Lighting Talk 第3回 大村 祐司
  • 2.
    © 2016 FUJITSUTEN LTD. ■ Raspberry Pi Raspberry Pi(ラズベリー パイ)は、ARMプロセッサを搭載したシングルボードコンピュータ。 イギリスのラズベリーパイ財団(英語版)によって開発されている。 日本ではラズパイとも呼ばれる。 (wikipediaより) 背景 2 iPhone 5 ・小さい ・OS(Linuxベース)をインストールできる ・最新のはwifi, BTモジュールが標準装備 ・消費電力が小さい
  • 3.
    © 2016 FUJITSUTEN LTD. ■ 利用例 ・エアコンの遠隔操作 ・Twitterなど、SNSのBOT ・エアコンに限らず家電の一括管理 ・部屋、家の監視カメラシステム ・Googleカレンダーと連携した秘書システム etc… 背景 3
  • 4.
    © 2016 FUJITSUTEN LTD. ■ 利用例 ・エアコンの遠隔操作 ・Twitterなど、SNSのBOT ・エアコンに限らず家電の一括管理 ・部屋、家の監視カメラシステム ・Googleカレンダーと連携した秘書システム etc… 背景 4
  • 5.
    © 2016 FUJITSUTEN LTD. ■ Googleカレンダーと連携した秘書システム < http://www.infiniteloop.co.jp/blog/2014/03/yukkuri-hisho/ > ・「Googleカレンダー API」を用いてXML形式でカレンダー情報取得 ・XML形式のデータをテキスト形式に整形 ・テキスト形式に整形したデータを音声読み上げソフトで読み上げる 背景(作りたいもの) 5 上記URLにPHPで作成したサンプルあ り 「AquesTalk Pi」という音声合成ソフトで 読み上げている
  • 6.
    © 2016 FUJITSUTEN LTD. ■ Googleカレンダーと連携した秘書システム < http://www.infiniteloop.co.jp/blog/2014/03/yukkuri-hisho/ > ・「Googleカレンダー API」を用いてXML形式でカレンダー情報取得 ・XML形式のデータをテキスト形式に整形 ・テキスト形式に整形したデータを音声読み上げソフトで読み上げる 背景(作りたいもの) 6 上記URLにPHPで作成したサンプルあ り 「AquesTalk Pi」という音声合成ソフトで 読み上げている せっかく作るのなら自分の好きな 声質を音声合成させたい
  • 7.
    © 2016 FUJITSUTEN LTD. ■音声合成の大別 ・波形接続型音声合成 文節、単語、一文字など、音声を分割して録音し、順番に再生することで 音声を再生する → メリット:単語ごとなど、適切な単位ごとに録音すると 自然な音声合成ができる デメリット:自然な音声合成を行うにはデータ量が膨大となる 用意していない音声は再生できない ・フォルマント合成 録音された音声データから基底周波数、音色、雑音レベルなどのパラメータを 学習し、その学習した結果(音響モデル)から音声を生成する → メリット:音声データ自体を持つわけではないので、データ量が小さい 発生させる内容、ピッチ、話速などを簡単に調整できる デメリット:波形接続型に比べ、少しロボット的に聞こえる 自分の好きな声質で合成音声 7
  • 8.
    © 2016 FUJITSUTEN LTD. ■音声合成の大別 ・波形接続型音声合成 文節、単語、一文字など、音声を分割して録音し、順番に再生することで 音声を再生する → メリット:単語ごとなど、適切な単位ごとに録音すると 自然な音声合成ができる デメリット:自然な音声合成を行うにはデータ量が膨大となる 用意していない音声は再生できない ・フォルマント合成 録音された音声データから基底周波数、音色、雑音レベルなどのパラメータを 学習し、その学習した結果(音響モデル)から音声を生成する → メリット:音声データ自体を持つわけではないので、データ量が小さい 発生させる内容、ピッチ、話速などを簡単に調整できる デメリット:波形接続型に比べ、少しロボット的に聞こえる 自分の好きな声質で合成音声 8 再生する音声を(単語ごと)を用意 順番に再生することで自然な音声を生成 データが多いので、容量と手間が大きくかかる 録音データから、発話者の声の特徴を捉えてデータ化 小さいデータで動的に発話内容を変えられる 人工の音声なので、少し違和感がある
  • 9.
    © 2016 FUJITSUTEN LTD. ■音声合成の大別 ・波形接続型音声合成 文節、単語、一文字など、音声を分割して録音し、順番に再生することで 音声を再生する → メリット:単語ごとなど、適切な単位ごとに録音すると 自然な音声合成ができる デメリット:自然な音声合成を行うにはデータ量が膨大となる 用意していない音声は再生できない ・フォルマント合成 録音された音声データから基底周波数、音色、雑音レベルなどのパラメータを 学習し、その学習した結果(音響モデル)から音声を生成する → メリット:音声データ自体を持つわけではないので、データ量が小さい 発生させる内容、ピッチ、話速などを簡単に調整できる デメリット:波形接続型に比べ、少しロボット的に聞こえる 自分の好きな声質で合成音声 9 再生する音声を(単語ごと)を用意 順番に再生することで自然な音声を生成 データが多いので、容量と手間が大きくかかる 録音データから、発話者の声の特徴を捉えてデータ化 小さいデータで動的に発話内容を変えられる 人工の音声なので、少し違和感がある
  • 10.
    © 2016 FUJITSUTEN LTD. ■音声合成の大別 ・波形接続型音声合成 文節、単語、一文字など、音声を分割して録音し、順番に再生することで 音声を再生する → メリット:単語ごとなど、適切な単位ごとに録音すると 自然な音声合成ができる デメリット:自然な音声合成を行うにはデータ量が膨大となる 用意していない音声は再生できない ・フォルマント合成 録音された音声データから基底周波数、音色、雑音レベルなどのパラメータを 学習し、その学習した結果(音響モデル)から音声を生成する → メリット:音声データ自体を持つわけではないので、データ量が小さい 発生させる内容、ピッチ、話速などを簡単に調整できる デメリット:波形接続型に比べ、少しロボット的に聞こえる 自分の好きな声質で合成音声 10 再生する音声を(単語ごと)を用意 順番に再生することで自然な音声を生成 データが多いので、容量と手間が大きくかかる 録音データから、発話者の声の特徴を捉えてデータ化 小さいデータで動的に発話内容を変えられる 人工の音声なので、少し違和感がある HTK = Hidden Markov ToolKit
  • 11.
    © 2016 FUJITSUTEN LTD. 参考:<http://mahoro-ba.net/e1876.html> (詳細な手順は参考URL) ・Linux環境を構築する(2h) ・音声データから音響モデルを学習するプログラム環境を構築する(4h) ・音声データを用意する(6h) ・音声データから音響モデルを作る(1h) ・パラメータを調整する 音響モデル作成 11
  • 12.
    © 2016 FUJITSUTEN LTD. 参考:<http://mahoro-ba.net/e1876.html> (詳細な手順は参考URL) ・Linux環境を構築する(2h) ・音声データから音響モデルを学習するプログラム環境を構築する(4h) ・音声データを用意する(6h) ・音声データから音響モデルを作る(1h) ・パラメータを調整する 音響モデル作成 12 VMWare + Ubuntu
  • 13.
    © 2016 FUJITSUTEN LTD. 参考:<http://mahoro-ba.net/e1876.html> (詳細な手順は参考URL) ・Linux環境を構築する(2h) ・音声データから音響モデルを学習するプログラム環境を構築する(4h) ・音声データを用意する(6h) ・音声データから音響モデルを作る(1h) ・パラメータを調整する 音響モデル作成 13 HTKのメインプログラムが公式HPからDLできないのでgit-hubから落とす
  • 14.
    © 2016 FUJITSUTEN LTD. 参考:<http://mahoro-ba.net/e1876.html> (詳細な手順は参考URL) ・Linux環境を構築する(2h) ・音声データから音響モデルを学習するプログラム環境を構築する(4h) ・音声データを用意する(6h) ・音声データから音響モデルを作る(1h) ・パラメータを調整する 音響モデル作成 14
  • 15.
    © 2016 FUJITSUTEN LTD. ■ATR503文 ・学習時によく使われる文章 ・これである必要は無いが、音素バランスの良い文章群なので使えるなら使う (学習データとして優れている文章) 001 : a01 : あらゆる現実を、すべて自分のほうへねじ曲げたのだ。 002 : a02 : 一週間ばかり、ニューヨークを取材した。 003 : a03 : テレビゲームやパソコンで、ゲームをして遊ぶ。 004 : a04 : 物価の変動を考慮して、給付水準を決める必要がある。 005 : a05 : 救急車が十分に動けず、救助作業が遅れている。 ・ ・ ・ 音響モデル作成 15
  • 16.
    © 2016 FUJITSUTEN LTD. 参考:<http://mahoro-ba.net/e1876.html> (詳細な手順は参考URL) ・Linux環境を構築する(2h) ・音声データから音響モデルを学習するプログラム環境を構築する(4h) ・音声データを用意する(6h) ・音声データから音響モデルを作る(1h) ・パラメータを調整する 音響モデル作成 16
  • 17.
    © 2016 FUJITSUTEN LTD. ■音声データから音響モデルを作る ・学習用音声データを変換する → .wavファイルに対し音声認識を行い、音声データの音素情報を 取得する(音素ラベル生成) → .wavファイルからヘッダ情報を除き.rawファイルへ変換する ・音声データ(.raw)ファイルと音素ラベルファイルを用いて、 HTKによる機械学習を行い、音響モデルを作成する 音響モデル作成 17
  • 18.
    © 2016 FUJITSUTEN LTD. ■音声データから音響モデルを作る ・学習用音声データを変換する → .wavファイルに対し音声認識を行い、音声データの音素情報を 取得する(音素ラベル生成) → .wavファイルからヘッダ情報を除き.rawファイルへ変換する ・音声データ(.raw)ファイルと音素ラベルファイルを用いて、 HTKによる機械学習を行い、音響モデルを作成する 音響モデル作成 18 .wavファイルの何フレーム目が何の音 に当てはまるのかをデータ化する
  • 19.
    © 2016 FUJITSUTEN LTD. 参考:<http://mahoro-ba.net/e1876.html> (詳細な手順は参考URL) ・Linux環境を構築する(2h) ・音声データから音響モデルを学習するプログラム環境を構築する(4h) ・音声データを用意する(6h) ・音声データから音響モデルを作る(1h) ・パラメータを調整する 音響モデル作成 19
  • 20.
    © 2016 FUJITSUTEN LTD. 参考:<http://mahoro-ba.net/e1876.html> (詳細な手順は参考URL) ・Linux環境を構築する(2h) ・音声データから音響モデルを学習するプログラム環境を構築する(4h) ・音声データを用意する(6h) ・音声データから音響モデルを作る(1h) ・パラメータを調整する 音響モデル作成 20 勉強中
  • 21.
    © 2016 FUJITSUTEN LTD. ○openJTalkをインストールする sudo apt-get install open-jtalk ○openJTalkに必要なファイル(辞書ファイル、サンプル音響モデル)をインストールする sudo apt-get install open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001 ○openJTalkを実行するためのスクリプトを作成する - 音響モデルのパスとかピッチなどを設定したりする - また、openJTalkは必ずwavを出力するので、 そのwavを再生し、削除する #!/bin/sh TMP=/tmp/jsay.wav echo "$1" | open_jtalk -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice -x /var/lib/mecab/dic/open-jtalk/naist-jdic -ow $TMP && aplay --quiet $TMP rm -f $TMP ○スクリプトを実行する ./jsay.sh (しゃべらせたい文字列) OpenJTalk 導入から実行まで 21 音響モデルの指定 作ったものに差し替える
  • 22.
    © 2016 FUJITSUTEN LTD. 最後に 22
  • 23.
    © 2016 FUJITSUTEN LTD. ご清聴 ありがとうございました 23