2016-10-23 11 views
1

テキストと録音音声を含むアプリを開発中です(ペルシャ語 - ペルシア語)。これらの2つを互いに同期させるAPIはありますか?オーディオが再生されているときにテキストを強調表示する方法はありますか?Androidの同期音声とテキスト

答えて

0

特定の機能のように聞こえるので、スタンドアートAPIはありません。それの完全な実装を提供することは非常に広いでしょうが、 私はそれが良い質問だと思うので、私はあなたに研究の方向性を与えることができるにもかかわらず。

オーディオファイルごとに、srtのような種類の字幕ファイルを作成する必要があります。ここでは、パーセル可能な単語がオーディオの発音時間と対応付けられます。その後、アプリケーション内でparse that fileを入力して、単語の末尾にMapを作成する必要があります。結果として、MediaPlayerコールバックを使用すると、オーディオ時間に応じてテキストを強調表示することに問題はありません。このソリューションを使用すると、字幕付きのオーディオファイルをアプリに動的に追加することができます。もちろん、その字幕をアプリケーションに直接ハードコーディングし、このような柔軟性が必要ない場合は、これを少し複雑な構文解析プロセスを避けることができます。

+0

データが大きすぎます。これは多くの時間がかかります –

+0

@alirezaarvandiしたがって、[自動的に字幕を作成する](http://softwarerecs.stackexchange.com/questions/4319/how-to-create-automatic-subtitles)を試してみてください。しかし、それはちょっと難しいかもしれません。残念ながら、この機能を拒否する以外のオプションはありません。ランタイムでの音声認識も短期間だけ実行され、優れた動作はしないため、オプションではありません。 2016年の思考ではない – Beloo

0

私はその質問に答えるには遅すぎると思います。また、非常に困難で時間がかかるものの、オーディオ1、オーディオ2、オーディオ3などのような複数のオーディオがある場合はお勧めします。 Mediaplayerのループを使用すると、テキストの記録を維持してテキストを強調表示することができます(配列の場合)。たとえば、テキスト1 [配列]の場合、audio1を再生します。

 mPlayer.start(); 
      a++; 
      z=1; 
      mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
       public void onCompletion(MediaPlayer mp) { 
        if (a!=b+1) { 
         if(mPlayer != null) { 
          if(mPlayer.isPlaying()) { 
           mPlayer.stop(); 
          } 
          mPlayer.reset(); 
         } 
         try { 
          mPlayer.setDataSource("/mnt/sdcard/audio/aya(" + a + ").mp3"); 
          mPlayer.prepare(); 
          quranlst.setFocusableInTouchMode(true); 
          quranlst.setSelection(z); 
          quranlst.requestFocus(); 
         quranlst.getChildAt(z).setBackgroundColor(Color.WHITE); 




         } catch (Exception e) { 
          e.printStackTrace(); 
         } 

         mPlayer.start(); 

         a++; 
         z++; 

ここで、zはテキストの位置です。これはあなたにアイデアを与えることを望みます。

関連する問題