テキスト読み上げインターフェイス(MaryTTS)からオーディオストリームを取得し、それをSIP RTPセッション(ピアを使用)でストリーミングしようとしています。オーディオストリームをPCMに変換する
ピア
public interface SoundSource {
byte[] readData();
}
とMaryTTS AudioInputStream
にString
を合成するように定義されたインタフェースであり、SoundSource
オーディオストリームたいです。私は単に
MaryInterface tts = new LocalMaryInterface();
AudioInputStream audio = tts.generateAudio("This is a test.");
SoundSource soundSource = new SoundSource() {
@Override
public byte[] readData() {
try {
byte[] buffer = new byte[1024];
audio.read(buffer);
return buffer;
} catch (IOException e) {
return null;
}
}
};
// issue call with soundSource using Peers
電話が鳴るのラインで、ストリームを読み、SoundSource
を実装するピアにそれをバッファリングしてみました、そして私の代わりに合成音声の遅い、低、騒々しい音を聞きます。私はそれがSIP RTPセッションが期待するオーディオ形式の何かであると思う、Peersのドキュメント状態以来
音源は以下の形式の生のオーディオでなければならない:リニアPCM 8kHz、リトルエンディアン。
AudioInputStream
をこれらの要件を満たすように変換/読み取るにはどうすればよいですか?私が知っている