2012-04-17 10 views
0

Googleの非公式のtts apiを使用してTTSアプリケーションを作成していますが、正常に動作しますが、apiは一度に最大100文字しか処理できませんが、 300文字です。ここでGoogle TTS APIの入力を制御する

は私のコードは、だから私の質問は、私はそれが文字列の文字数をチェックして、100文字の制限の範囲内のみで完全な単語を送信するために取得するにはどうすればよい

  1. ある

     try { 
         String text = "bonjour comment allez-vous faire"; 
    
         text=text.replace(" ", "%20"); 
         String oLanguage="fr"; 
    
         MediaPlayer player = new MediaPlayer(); 
         player.setAudioStreamType(AudioManager.STREAM_MUSIC);   
         player.setDataSource("http://translate.google.com/translate_tts?tl=" + oLanguage + "&q=" + text); 
    
         player.prepare(); 
         player.start(); 
    
        } catch (Exception e) { 
         // TODO: handle exception 
        } 
    

    です。私はTTSの最初のグループが終了したときに、私はお互い

  2. を重ね、両方のスピーチを避けるために、第二を送ることができる私は、このプロセスのためにAsynctaskを使用するための任意の必要がある検出するにはどうすればよい

答えて

0

私はそれが文字列の文字数をチェックして、100文字の制限の範囲内のみで完全な単語を送信するのですか1.How。

ArrayList<String> arr = new ArrayList<String>(); 
    int counter = 0; 
    String textToSpeach = "Your long text"; 
    if(textToSpeach.length()>100) 
    { 
     for(int i =0 ; i<(textToSpeach.length()/100)+1;i++) 
     { 
     String temp = textToSpeach.substring(0+counter,99+counter); 
     arr.add(temp.substring(0, temp.lastIndexOf(" "))); 
     counter = counter + 100; 
     } 
    } 

2.How私はTTSの最初のグループが終了したときに、私はお互い

player.setOnCompletionListener(new OnCompletionListener() { 

     @Override 
     public void onCompletion(MediaPlayer mp) { 

      // pass next block 
     } 
    }); 

いずれかがそこ3.Isを重ね、両方のスピーチを避けるために、第二を送ることができます検出しますこのプロセスにAsynctaskを使用する必要がありますか?

今のところ私はその必要はありません。

+0

最初の部分をテストし終えましたが、temp.lastIndexOf( "")の後の次の文字からカウンタを2回目に起動して文字を失わないようにする必要があります。これどうやってするの? – Amanni

+0

カウンター変数はアクティビティレベルで宣言する必要があります。静的 – MKJParekh

+0

カウンタはコード内で100から再開しますが、100文字の最初の文字列がたとえば "素敵な一日 "関数lastindexofは初めて"良い "で停止します。それから、次の文字列を「日」から再開したいと思います。 – Amanni

0

シンプル:これはパブリックAPIではありません。使用しないでください。音声合成にはAndoridのビルトインTTSエンジンを使用します。文字列の長さの制限はありません。

+0

これはビルトインのTTSスピーチエンジン – Amanni

+0

よりも音が良いかもしれませんが、AndroidのTTSエンジンは拡張可能です。音が良くなるようにするには、より良いサウンドを提供するパッケージをインストールするだけです。非公式APIはいつでも消えてしまうかもしれませんし、あまりにも多くのリクエストを発行した場合はブロックされるかもしれません。言い換えれば、それは法的にはグレー(少なくとも)です。 –

+0

ありがとう、私はそれが長期的には安全かもしれないと思います。あなたは私にこれらのパッケージについてもっと良い音のためのリンクを教えてもらえますか?アプリに埋め込むか、あなたの携帯に別々にインストールする必要がありますか? – Amanni

関連する問題