【Pythonで音声合成(テキスト読み上げ)】gTTSのインストール

【Pythonで音声合成(テキスト読み上げ)】gTTSのインストール プログラミング

「無料で気軽に音声合成を試したい」
「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.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年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_test.mp3

このレベルの音声合成が、こんなに手軽にできるなんて素晴らしいです。

以上、gTTSの動作確認を説明しました。

タイトルとURLをコピーしました