Was this page helpful?

ITRI TTS (工研院)

    說明

    官方首頁:http://tts.itri.org.tw/

    工研院文字轉語音Web服務(ITRI TTS Web Service)可讓您在自己的網頁提供TTS體驗,即時將網頁上的文字,轉換為自然流暢、近似真人發音之語音。 Web服務已提供PHP、ASP、JavaScript等方式...。

    除了一般中、英文語音外,還有台語語音可供選擇,亦可經由韻律調整,調整出如 機器人 、 外國人講中文 等等特殊的效果(您可以使用進階合成下載體驗韻律調整功能)。

    ITRI TTS 特性

    • 免費授權使用
    • 必須連線網際網路
    • 支援中文與英文
    • 語音檔品質測試:http://tts.itri.org.tw/

    步驟開始

    系統需求:

    • 官網帳號申請
    • itri-tts.php 線上語音
    • multi-tts.agi Asterisk AGI
    itri-tts.php:
    #!/usr/bin/php -q 
    <?php
    /********************
    Author: A-Lang alang[DOT]hsu[AT]gmail[DOT]com
    Created: 2018/1/24
    ********************/
    // ITRI Credentials
    // http://tts.itri.org.tw/
    $account = "hereisusername";
    $password = "hereispassword";
    
    $sox_cmd = "/usr/bin/sox"; // sox is required.
    
    //------------------------ PHP-AGI ------------------------------
    // Check arguments
    if ($argc < 2) {
        echo "Usage: $argv[0] <Text> <Output-audio>\n" ;
        echo "for example: $argv[0] \"你好,這是工研院文字轉語音展示系統\" /tmp/play.wav \n";
        exit(1);
    }
    
    $whatIsay = $argv[1];
    $audiofile = $argv[2];
    $tmpaudiofile = $audiofile.".". rand(10,1000);
    
    //Setup Web Service
    $client = new SoapClient("http://tts.itri.org.tw/TTSService/Soap_1_3.php?wsdl");
    
    // Invoke Call to ConvertSimple
    $result=$client->ConvertSimple($account, $password, $whatIsay);
    
    // Iterate through the returned string array
    $resultArray=explode("&",$result);
    list($resultCode, $resultString, $resultConvertID) = $resultArray;
    //echo "resultCode:".$resultCode."\n";
    //echo "resultString:".$resultString."\n";
    //echo "resultConvertID:".$resultConvertID."\n";
    
    $ConvertID = $resultConvertID;
    if (!empty($ConvertID)) {
        sleep(2);
        
        // Invoke Call to ConvertText
        $result=$client->GetConvertStatus($account,$password,$ConvertID);
    
        // Iterate through the returned string array
        $resultArray=explode("&",$result);
        list($resultCode, $resultString, $statusCode, $status, $resultUrl) = $resultArray;
        //echo "resultCode:".$resultCode."\n";
        //echo "resultString:".$resultString."\n";
        //echo "statusCode: ".$statusCode."\n";
        //echo "status: ".$status."\n";
        //echo "resultUrl: ".$resultUrl."\n";
    
        if (!empty($resultUrl)) {
            if(copy($resultUrl,$tmpaudiofile)){
                chmod($tmpaudiofile, 0644);
                //echo "audiofile: ".$audiofile."\n";
            }
        }
    }
    
    // Convert the audio file to 8000 HZ
    system("$sox_cmd $tmpaudiofile -r 8000 -c 1 -s $audiofile");
    //sleep(1);
    
    // Clean up unused files
    unlink("$tmpaudiofile");
    ?>

    測試方法

    itri-tts.php "你好,這是工研院文字轉語音展示系統" /tmp/play.wav
    
    設定 AGI

    請參考這篇 AGI:multi-tts.agi 新增並設定 AGI。

    Was this page helpful?
    標籤 (Edit tags)
    • No tags
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core