問題タブ [speex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1969 参照

apache-flex - ネイティブ ライブラリを使用した Flash/Flex でのアコースティック エコー キャンセレーション

Flex ビデオ会議アプリケーションに AEC を実装する必要があります。Flash で直接実行できないことはわかっています。Flex の外部で AEC を行うネイティブ アプリケーションまたはライブラリを作成することを考えています。

私が知る限り、Adobe Connect Pro は AEC を行う外部ライブラリを使用しています。私はこの方向性に従い、似たようなことをしたいと思っています。

私の頭には2つの可能性があります:

1) 独立したカスタム AEC フィルター。

カスタム AEC フィルターはバックグラウンドで実行され、マイクとサウンド カードからのすべてのデータを処理し、AEC を実行します。エコー信号は、再生されるが、次のような一時バッファで遅延されるデータになります: aec(input,delayed_input,output)。

Flash マイク入力はカスタム入力を認識せず、スピーカーも同様であるため、機能するかどうかはわかりません。しかし、システム レベルで AEC を備えた WinXP/Vista ではどのように行われるのでしょうか?

2) Flex の NativeProcess とやり取りする AEC フィルター。

フィルターは NativeProcess によって実行されます。Flex アプリは、マイクの音、受け取ったリモート音声をフィルターに渡し、エコーを除去した音声を返し、Flex はこれをスピーカーに出力します。それは正しいでしょうか?

2) の方法で問題がなければ、次の質問があります。

  1. Speex の AEC から始めますが、Flex から渡されたデータはどのような形式である必要がありますか? サウンド圧縮に Flex Speex コーデックを選択した場合、それを Speex ライブラリに直接渡すことはできますか?
  2. パフォーマンスは大丈夫ですか?サウンド フレーム バッファごとに NativeProcess ライブラリを呼び出すのは時間がかかると思います。
  3. Flash から直接使用できる AEC 実装が AS3 にないのはなぜですか? 私が知る限り、AEC を実行するには、エコー データとマイク データが必要です (Flash 10 では、マイクに直接アクセスできます)。このようにそれをやめる何かが間違いなくありますが、それが何であるかはまだわかりません:)
  4. 私が使用できる Speex 以外の無料の AEC 実装または DSP ライブラリはありますか?

PS 私は今 Flash/Flex の専門家なので、愚かな質問をして申し訳ありません:)

助けてくれてありがとう、ternyk

0 投票する
1 に答える
1404 参照

python - Python での Speex

Speexを使用して Python 内からエンコード/デコードするにはどうすればよいですか? ラッパーはありますか?古いプロジェクトpySpeexを見つけましたが、現在は廃止されています (Python 2.2 が必要です)。

0 投票する
1 に答える
2153 参照

apache-flex - Flash/Flex の Speex コーデックの API

マイクデータへのアクセスを許可する AIR 2 を使用すると、オーディオをローカルで保存/処理することができます。Adobe は WAVWriter の例を提供していますが、Speex コーデックへの API アクセスはありますか?

0 投票する
1 に答える
610 参照

python - Pythonヘルプの音声通信!

私は現在、Pythonでボイスチャットプログラムを作成しようとしています。すべてのヒント/トリックはこれを行うことを歓迎します。

これまでのところ、pyAudioはPortAudioのラッパーであることがわかりました。それで、私はそれをいじって、マイクから入力ストリームを取得してスピーカーに再生しました。もちろんRAWのみ。

しかし、RAWデータをnetowrk経由で送信することはできません(サイズが大きいため)。そのため、それをエンコードする方法を探しています。そして、私はネットを検索し、 Pythonのこのspeexラッパーに出くわしました。真実であるのは良さそうです、そして私を信じてください、そうでした。

pyAudioでは、入力オーディオバッファから取得するチャンクのサイズを設定できます。リンクのサンプルコードでは、320に設定されています。エンコードすると、チャンクあたり最大40バイトのデータになります。これはかなり受け入れられると思います。そして今、問題のために。

入力ストリームを取得し、チャンクをエンコードし、デコードして再生するだけのサンプルプログラムを開始します(テストのためにネットワーク経由で送信するのではありません)。コンピュータをアイドル状態にしてこのプログラムを実行すると、うまく機能しますが、Firefoxなどを起動するとすぐに、オーディオ入力バッファがすべて詰まります。成長するだけで、すべてがクラッシュし、バッファでオーバーフローエラーが発生します。

では、なぜ私はストリームの320バイトを取得しているのですか?1024バイトか何かを取ることができ、それはバッファへのプレッシャーを和らげるでしょう。しかし。speexに1024バイトのデータをエンコード/デコードするように指定すると、クラッシュして、バッファには大きすぎると表示されます。または、エンコード/デコードしますが、サウンドは非常にノイズが多く、1024チャンクのごく一部のみをエンコードし、残りは静的ノイズであるかのように「途切れ途切れ」になります。だから、音はヘリコプターのように聞こえます、笑。

私はいくつかの調査を行いましたが、speexは一度に320バイトのデータしか変換できないようで、広帯域の場合は640バイトしか変換できないようです。しかし、それは標準ですか?この問題を解決するにはどうすればよいですか?speexで動作するようにプログラムを構築するにはどうすればよいですか?使用可能なすべてのデータを取得してバッファーから読み取るミドルバッファーを使用して、これを320ビットにチャンクし、エンコード/デコードすることができます。しかし、これには少し時間がかかり、問題の非常に悪い解決策のようです。

私の知る限り、オーディオをエンコードするPython用のエンコーダーは他にないので、受け入れ可能な小さなパッケージでネットワーク経由で送信できますか?私は今3日間グーグルしています。

また、このpyMediaライブラリがありますが、この種のソフトウェアでmp3/oggに変換するのが良いかどうかはわかりません。

これを読んでくれてありがとう、誰かが私を助けてくれることを願っています!(:

0 投票する
1 に答える
3928 参照

java - Javaで複数のサウンドストリームを組み合わせる

PCM(PCM_SIGNED 8000.0 Hz、16ビット、モノラル、2バイト/フレーム、リトルエンディアン)でエンコードされた、ネットワーク経由で送信したい音声ストリームがいくつかあります。帯域幅を節約するために、私は現在JSpeexを使用してストリームをエンコードしています。ただし、さらに多くの帯域幅を節約するために、JSpeexでエンコードする前に、(可能であれば)これらの複数のストリームを1つのストリームに結合したいと思います。私のDSPの知識はひどく不足していて、Javaでストリームを結合する方法を考えていますか?

0 投票する
4 に答える
2408 参照

flash - Adobe Flash:ファイルからSpeexオーディオを再生する

私は、speexでエンコードされたオーディオをフラッシュで再生する方法を示す例を見つけるために本当に一生懸命努力しました。私は次のコードを試しました-

-で利用可能

http://www.adobe.com/devnet/flashplayer/articles/hd_video_flash_player _03.html

上記のコードを.flvビデオとAACでエンコードされたオーディオファイルでテストしましたが、問題なく動作します。しかし、stream_ns.play( "sample.spx")を試してみると、streamnotfound例外が発生します。

speexオーディオに間違ったコンテナ(.spx)を使用していますか?ファイルからのspeexオーディオの再生はサポートされていますか?助けてください!

(例を挙げていただければ幸いです。)

0 投票する
1 に答える
138 参照

qt - symbian用のlibspeexのコンパイル

nokiaQtアプリケーションでlibspeexライブラリを使用したい。この目的のためにspeexをコンパイルするにはどうすればよいですか?また、qtプロジェクトに追加するにはどうすればよいですか?

0 投票する
0 に答える
671 参照

c++ - リンク C ライブラリ エラー。COMDAT シンボル '.exc$T' はセクション名 '.rdata' と一致しません

カーバイド C++ を使用して、symbian 用の speex ライブラリをコンパイルしました。コンパイルはエラー/警告なしで完了します。

QT アプリケーションでコンパイル済みライブラリを使用しています。QT アプリケーションをコンパイルすると、次のエラーが発生します -

警告: COMDAT シンボル '.exc$T' はセクション名 '.rdata' と一致しません (これは実際にはエラーであり、警告ではありません。警告という単語はエラー文字列の一部です。)

cygwin上で「nm speex.lib」を実行しました。出力に同じ文字列が表示されます - 警告: COMDAT シンボル '.exc$T' がセクション名 '.rdata' と一致しません。(なので、lib内の警告で、QTで使用するとエラーになると思います)。

このエラーの意味がわかりません。Google 検索はあまり役に立ちませんでした。助けてください!

0 投票する
1 に答える
1966 参照

java - Speex Voip サーバーとクライアントの作成に関するヘルプ

Speex Voip クライアントとサーバーを作成しようとしています。UDP を介してローカル マシンで基本的な機能が正常に動作するようになりました。移植性のためにJSpeexを使用しています。クライアントとサーバーの作成に関するヒントを探しています。あなたの考えは何ですか?

JSpeex ライブラリは 1 回の呼び出しで 320 バイトしかエンコードできないため、サーバーに送信されるパケットはごくわずかです (私の場合は ~244 バイト)。クライアントは、約 1 または 2 KB のエンコードされたデータの準備が整うまで待ってから送信した方がよいでしょうか。それとも、サーバーにパケットのバッファリングを処理させたほうがよいでしょうか?

また、データのバッファリングを実装する方法についての助けがあればいいでしょう。

私が持っているもののいくつかは、ローカル マシンで動作します。

クライアント:

サーバ:

0 投票する
2 に答える
1653 参照

command-line - FLV からオーディオを抽出するにはどうすればよいですか?

FMS を使用して記録された FLV ファイルからオーディオを抽出する必要があります。オーディオとビデオを FMS にストリーミングする Flash アプリケーションでコーディングされた SPEEX を使用しました。

私はFFMPEGを使ってみましたが、うまくいきませんでした。これは私の FLV の -i 出力です:

FFmpeg バージョン SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al. 設定: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-libvorbis --enable-libtheora --enable-libogg --enable-libgsm --enable-dc1394 --disable -debug --enable-shared --prefix=/usr libavutil バージョン: 1d.49.3.0 libavcodec バージョン: 1d.51.38.0 libavformat バージョン: 1d.51.10.0 2010 年 4 月 23 日 15:11:13、gcc でビルド: 4.2.4 (Ubuntu 4.2.4-1ubuntu3) [flv @ 0xb7ed7110]サポートされていないオーディオ コーデック (b) [flv @ 0xb7ed7110]サポートされていないオーディオ コーデック (b) 入力 #0、flv、「m.flv」から: 期間: 00: 00:05.0、開始: 0.000000、ビットレート: 該当なし ストリーム #0.0: ビデオ: flv、yuv420p、288x203、1000.00 fps(r) ストリーム #0.1: オーディオ: 0x000b、11025 Hz、モノラル

これはサーバーから実行されるため、コマンド ライン ユーティリティが必要です。

前もって感謝します。