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