2019年7月7日日曜日

docomo の音声合成API を Raspberry Piで再生する

docomo Developer support の 音声合成API を、Raspberry Pi の Python で試してみる。gTTS ライブラリ(Google Text-to-Speech)だと、話速が遅くて使いにくかったので、今回のdocomoでは、少しだけ早く喋るように調整した。

音声は WAVE 形式にして aplay コマンドで再生する。ファイルに保存しないで pygame ライブラリで再生することもできるが、再生スピードが爆速になってしまったので断念、ファイルを使わないと不安定なようだ。


音声合成API 機能別リファレンス
https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_name=text_to_speech

import requests
import json
import os

TTS_URL = 'https://api.apigw.smt.docomo.ne.jp/crayon/v1/textToSpeech?APIKEY=発行したKEY'

params = {
  "Command":"AP_Synth",
  "SpeakerID":"1",
  "StyleID":"1",
  "SpeechRate":"1.25",
  "AudioFileFormat":"2",
  "TextData":"こんにちは"
}

r = requests.post(TTS_URL, data=json.dumps(params))
if r.status_code == requests.codes.ok:
  wav = r.content
  with open("docomo_tts.wav","wb") as fout:
    fout.write(wav)
  os.system("aplay docomo_tts.wav")
  print("ok")
else:
  print(r.status_code)