Quick start¶
「Pythonで学ぶ音声合成」のquick startページへようこそ!
このページ(ノートブック形式)では、書籍中で解説している3つの音声合成について、音声合成のサンプルコード・音声サンプルを示します。「解説を読む前に手を動かしてみたい」という方には、最初の一歩に最適なノートブックです。
ここで示す音声合成は、GitHubリポジトリで学習済みモデルが配布されています。音声サンプルを聴くだけでなく、ぜひ自分で音声合成を試してみて下さい。 そして、音声合成の詳細を理解するためには、ソースコードと書籍を併せて参照してください。
準備¶
ttslearn のインストール¶
[1]:
%%capture
try:
import ttslearn
except ImportError:
!pip install ttslearn
[2]:
import ttslearn
ttslearn.__version__
[2]:
'0.2.2'
パッケージのインポート¶
[3]:
%pylab inline
import IPython
from IPython.display import Audio
import librosa
import librosa.display
from tqdm.notebook import tqdm
import torch
Populating the interactive namespace from numpy and matplotlib
DNN音声合成 (第5章・第6章)¶
[4]:
from ttslearn.dnntts import DNNTTS
dnntts_engine = DNNTTS()
[5]:
%time wav, sr = dnntts_engine.tts("あらゆる現実を、すべて自分のほうへねじ曲げたのだ。")
IPython.display.display(Audio(wav, rate=sr))
CPU times: user 1.39 s, sys: 21.4 ms, total: 1.41 s
Wall time: 673 ms
WaveNet音声合成 (第7章・第8章)¶
[6]:
from ttslearn.wavenet import WaveNetTTS
wavenet_engine = WaveNetTTS()
[7]:
%time wav, sr = wavenet_engine.tts("小さな鰻屋に、熱気のようなものがみなぎる", tqdm=tqdm)
IPython.display.display(Audio(wav, rate=sr))
CPU times: user 15min 29s, sys: 12.3 s, total: 15min 41s
Wall time: 3min 55s
Tacotron 2 (第9章・第10章)¶
[8]:
from ttslearn.tacotron import Tacotron2TTS
tacotron_engine = Tacotron2TTS()
[9]:
%time wav, sr = tacotron_engine.tts("昼にはペスカトーレを、夜には寿司をパクパク食べた。", tqdm=tqdm)
IPython.display.display(Audio(wav, rate=sr))
CPU times: user 13min 32s, sys: 10.4 s, total: 13min 43s
Wall time: 3min 25s
おわりに¶
[10]:
text = "これから音声合成を始める皆様にとって、少しでも学習の助けになれば幸いです。"
print(text)
for idx, (name, engine) in enumerate([
("DNNTTS", dnntts_engine),
("WaveNet TTS", wavenet_engine),
("Tacotron 2", tacotron_engine),
]):
%time wav, sr = engine.tts(text, tqdm=tqdm)
IPython.display.display(Audio(wav, rate=sr))
これから音声合成を始める皆様にとって、少しでも学習の助けになれば幸いです。
CPU times: user 1.89 s, sys: 40 ms, total: 1.93 s
Wall time: 1.09 s
CPU times: user 27min 14s, sys: 18.3 s, total: 27min 33s
Wall time: 6min 53s
CPU times: user 23min 16s, sys: 17.2 s, total: 23min 33s
Wall time: 5min 53s