「無料で気軽に音声合成を試したい」
「Pythonでテキストから音声ファイルを生成したい」
このような場合には、gTTSがオススメです。
この記事では、音声合成を気軽にできるgTTSについて解説しています。
本記事の内容
- gTTSとは?
- gTTSのシステム要件
- gTTSのインストール
- gTTSの動作確認
それでは、上記に沿って解説していきます。
gTTSとは?
gTTSとは、音声合成が可能なPythonライブラリおよびCLIツールのことを言います。
gTTSはPure Pythonであり、導入が非常に簡単です。
本来、テキストから音声への変換は複雑な仕組みが必要となります。
それなのに、gTTSは100%Pythonで開発されています。
これには、理由があります。
音声合成というコアな部分は、Google翻訳音声合成APIに依存しているのです。
ここで、勘違いが起こりがちです。
実際、私も初めは混乱しました。
gTTSが利用しているのは、Google翻訳音声合成APIです。
このAPIは、Google Cloud Text-to-Speechとは何の関係もありません。
まず、ここはOKですね。
そして、さらにはこのAPIと言っているモノは正式には公開されていません。
ドキュメントが公開されているモノではない、ということです。
実は、Googleにはこのような非公開APIなるモノが結構存在しています。
Google以外でもTwitterでも、非公開APIを確認することができます。
つまり、gTTSはそのような非公開APIに依存しているということです。
そのため、いつ利用できなくなっても文句は言えません。
したがって、gTTSを業務システムなどで利用するのは危険です。
せいぜい、個人レベルでの利用に留めておきましょう。
以上、gTTSについて説明しました。
次は、gTTSのシステム要件を説明します。
gTTSのシステム要件
現時点(2022年9月)でのgTTSの最新バージョンは、2.2.4となります。
この最新バージョンは、2022年3月15日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
gTTSは、Pure PythonであるためにOSは問いません。
サポート対象となるPythonのバージョンは、以下。
- Python 2.7
- Python 3.6
- Python 3.7
- Python 3.8
- Python 3.9
結構、放置気味ですね。
とりあえず、我々は以下のPython公式開発サイクルを意識しておきましょう。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
Python 3.6は、2021年末でサポート期限が切れています。
そして、Python 3.10でもgTTSは問題なく動きます。
ここまでを見ると、gTTSのシステム要件はあってないようなモノです。
ただし、ここではPython 3.7以降を推奨します。
以上、gTTSのシステム要件を説明しました。
次は、gTTSのインストールを説明します。
gTTSのインストール
検証は、次のバージョンのPythonで行います。
> python -V Python 3.10.4
まずは、現状のインストール済みパッケージを確認しておきます。
> pip list Package Version ---------- ------- pip 22.2.2 setuptools 65.3.0 wheel 0.36.2
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、gTTSのインストールです。
gTTSのインストールは、以下のコマンドとなります。
pip install gTTS
gTTSのインストールは、すぐに終わります。
終了したら、どんなパッケージがインストールされたのかを確認します。
> pip list Package Version ------------------ --------- certifi 2022.9.14 charset-normalizer 2.1.1 click 8.1.3 colorama 0.4.5 gTTS 2.2.4 idna 3.4 pip 22.2.2 requests 2.28.1 setuptools 65.3.0 six 1.16.0 urllib3 1.26.12 wheel 0.36.2
有名なパッケージを確認できます。
ほとんど見たことあるようなパッケージばかりです。
gTTSは、それらに依存しています。
以上、gTTSのインストールを説明しました。
次は、gTTSの動作確認を説明します。
gTTSの動作確認
gTTSの動作確認を行います。
gTTSは、以下の方法で動かすことが可能です。
- コマンドラインツール
- Python API(モジュール)
それぞれを下記で説明します。
コマンドラインツール
まずは、バージョンを確認します。
> gtts-cli --version gtts-cli, version 2.2.4
使い方は、ヘルプで確認できます。
> gtts-cli -h Usage: gtts-cli [OPTIONS] <text> Read <text> to mp3 format using Google Translate's Text-to-Speech API (set <text> or --file <file> to - for standard input) Options: -f, --file <file> Read from <file> instead of <text>. -o, --output <file> Write to <file> instead of stdout. -s, --slow Read more slowly. -l, --lang <lang> IETF language tag. Language to speak in. List documented tags with --all. [default: en] -t, --tld <tld> Top-level domain for the Google host, i.e https://translate.google.<tld> [default: com] --nocheck Disable strict IETF language tag checking. Allow undocumented tags. --all Print all documented available IETF language tags and exit. --debug Show debug information. --version Show the version and exit. -h, --help Show this message and exit.
個人的には、コマンドラインツールよりはPython APIでgTTSを利用します。
ただ、以下のコマンドは便利だと感じました。
gtts-cli --all
対応している言語を確認できるのです。
> gtts-cli --all af: Afrikaans ar: Arabic bg: Bulgarian bn: Bengali bs: Bosnian ca: Catalan cs: Czech cy: Welsh da: Danish de: German el: Greek en: English eo: Esperanto es: Spanish et: Estonian fi: Finnish fr: French gu: Gujarati hi: Hindi hr: Croatian hu: Hungarian hy: Armenian id: Indonesian is: Icelandic it: Italian iw: Hebrew ja: Japanese jw: Javanese km: Khmer kn: Kannada ko: Korean la: Latin lv: Latvian mk: Macedonian ml: Malayalam mr: Marathi ms: Malay my: Myanmar (Burmese) ne: Nepali nl: Dutch no: Norwegian pl: Polish pt: Portuguese ro: Romanian ru: Russian si: Sinhala sk: Slovak sq: Albanian sr: Serbian su: Sundanese sv: Swedish sw: Swahili ta: Tamil te: Telugu th: Thai tl: Filipino tr: Turkish uk: Ukrainian ur: Urdu vi: Vietnamese zh-CN: Chinese zh-TW: Chinese (Mandarin/Taiwan) zh: Chinese (Mandarin)
「ja」が存在していますね。
gTTSが日本語でも利用できることが、確認できます。
Python API(モジュール)
コードとしては、何も説明不要なレベルです。
from gtts import gTTS s = '過去最強クラスの台風14号が近づいてきています。九州南部、そして北部の皆さんを中心に暴風、高波、高潮や大雨などに最大級の警戒をしてください。' tts = gTTS(s, lang='ja') tts.save('gTTS_test.mp3')
上記コードを実行すると、「gTTS_test.mp3」が作成されます。
このレベルの音声合成が、こんなに手軽にできるなんて素晴らしいです。
以上、gTTSの動作確認を説明しました。