Google TTS(Text to speech)を使用したリアルタイム音声合成

概要

Googleが非公式提供しているTTS APIを使用して音声を合成し、Asterisk上でリアルタイムに再生する方法を紹介します。

 

検証環境

  • CentOS 6.3
  • Asterisk 1.8
  • ライブラリ等
    # yum -y install perl perl-libwww-perl sox cpan gcc 
    # rpm -Uhv http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm 
    # yum -y install mpg123 
    # PERL_MM_USE_DEFAULT=1 perl -MCPAN -e "install Bundle::LWP" 
    # PERL_MM_USE_DEFAULT=1 perl -MCPAN -e "install CGI::Util"
    
  • Asteriskサーバからインターネットに接続できる環境
  • "asterisk-googletranslate"のgoogletts.agi
    Text to speech asterisk using Google Translate

 

準備

  1. googletts.agiの配置
    # mv googletranslate.agi /var/lib/asterisk/agi-bin/
    # chmod 755 /var/lib/asterisk/agi-bin/googletts.agi
  2. ダイヤルプランの作成
    内線番号5000を使用する場合
    exten => 5000,1,Answer
    exten => 5000,n,agi(googletts.agi,"I am using the Google of speech synthesis service.",en)
    exten => 5000,n,agi(googletts.agi,"Googleの音声合成サービスを使用しています。",ja)
    exten => 5000,n,agi(googletts.agi,"Google 음성 합성 서비스를 사용하고 있습니다.",ko)
    exten => 5000,n,HangUp
    

 

AGIの使用方法

agi(googletts.agi,"text",[language],[intkey],[speed])

  • text: 発話させる文字列
  • language: textの言語(詳細)
  • intkey: 再生中止デジット
  • speed: 再生スピート(初期値1.2)

 

AGI内の処理説明

  1. GoogleAPIの呼出し
    http://translate.google.com/translate_tts?tl=言語&q=発話させる文字列
  2. HTTPの結果をファイル保存(MP3形式)
  3. ファイルフォーマット変換(MP3->WAV)
  4. Asterisk AGI(STREAM FILE)にて音声再生

 

他にご質問がございましたら、リクエストを送信してください

コメント

Powered by Zendesk