問題タブ [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 に答える
1255 参照

objective-c - Speex エンコード/デコードによりヒス ノイズが発生する (Objective-c)

Speex のエンコード/デコード手順をバイパスすると、生のオーディオ出力は正しくなります。私が望むのは、録音コールバックからキャプチャされたバッファ全体がエンコード、デコードされ、再生ループに送り返されることです。私が確信していないいくつかの項目は次のとおりです。

  1. enc_buffer と dec_buffer に割り当てるサイズ
  2. speex_bits_read_from(SpeexBits* bits,char* bytes,int len) で指定する長さ
  3. int speex_bits_write(SpeexBits* bits,char* bytes,int max_len) で指定する最大サイズ

これが私のspeexコーデックの初期化です:

私のエンコード/デコード方法:

そして、それらは次のように呼び出されます。

ここで、「bufferList」は、録音/再生コールバックから返されたものです。バッファが適切に満たされていることを誰かが確認できますか? ここで報告された同様の問題を見ましたが、コードのどこで間違っている可能性があるかを確認できませんでした。

エンコード/デコードによって生成されるノイズは、そのままでは粒状の静的なヒスノイズですが、完全にランダムな情報ではありません。マイクに息を吹き込むと、ノイズの背後で聞こえます。

この問題を解決するための助けをいただければ幸いです。すべてが整理されたら、おそらくそれについてブログを書くことになるでしょう。多くの人が、このコーデックを設定するさまざまな些細な問題に遭遇しているようです。

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

android - speex および jspeex デコード

Jspeex には、以下に示すようにデコードするメソッドがあります。

入力として、長さが定かではないバイトの配列を指定していますが、メソッドは出力バッファを適切に埋めるだけです。言い換えれば、私は互いに隣り合ったフレームの束を与えていますが、デコーダーは連続したフレームで問題ありません。ただし、一部のマシンは遅いため、jni ラッパーで speex を使用することにしました。同様に、以下に示すメソッドがあります。

上記の jni ラップ デコード メソッドは、単一フレームのみを受け入れます。私の質問は、jni でラップされた speex を使用して、jspeex でまったく同じことを行うにはどうすればよいかということです。

PS: 連続するフレームを個々のフレームに分割しようとしましたが、連続するフレームの長さが number_of_frames X length_of_a_frame と一致しませんでした。

私のすばらしい(?)英語で申し訳ありませんが、よろしくお願いします。

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

c - Tの最初のフィールドがCの場合、構造体T*を構造体C*の未定義動作にキャストしていますか?

Speexを使用して発生している問題をデバッグしようとしているときに、Speexだけでなく、いくつかのサンプルコードも次のように動作することに気付きました。

  • 初期化関数からEncStateへのポインタを返します
  • そのポインタをvoidポインタにキャストします
  • voidポインタを格納します
  • (他の場所)
  • voidポインタをSpeexModeへのポインタへのポインタにキャストします
  • ポインタを間接参照します

の定義はEncStateタイプのフィールドで始まるSpeexMode *ため、最初のフィールドへのポインタと構造体へのポインタの整数値はたまたま同じです。逆参照は実行時に機能します。

しかし...言語は実際にこれを許可していますか?コンパイラがこれをコンパイルする場合、コンパイラは自由にやりたいことができますか?C`の場合、構造体T*を構造体のC*未定義動作にキャストしていますか?T''s first field is a

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

ios - iOS 用 xCode で Speex をコンパイルする

iPhone アプリ用に Speex コーデックをコンパイルして使用しようとしています。私はいくつかのチュートリアルを使用しました: http://codeforfun.wordpress.com/2010/04/29/compile-speex-for-iphone/

また、この提案でそれをコンパイルしようとしました: Cross -Compiling speex library for ios

もちろん、「SDKROOT」を「iphoneos」に変更します

これらすべてにより、バイナリファイルを実際に作成できないという問題が発生しました。私はすべてを試したと思います!問題はmakefileの欠落に関するものだと思います。元の Makefile.in を「makefile」に変更したところ、xCode はそれを見つけられるようになりましたが、それでも機能しません。

私が得るエラーは次のとおりです: d: 警告: オプション '-L.../CSource/libspeex/.libs' のディレクトリが見つかりません アーキテクチャ armv7s の未定義シンボル: "_speex_nb_mode"、参照元: -[MainViewController viewDidLoad] in MainViewController. o

助けてください!

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

ogg - iOS で Ogg を使用して Speex をパッキングする

libogg と libogg を使用しています。これらのライブラリを iPhone xCode プロジェクトに追加し、Speex で音声をエンコードすることに成功しました。問題は、これらのオーディオ パケットを ogg でパックする方法がわからないことです。誰かがその種のパケットがどのように見えるべきか、または私が使用できる参照コードを持っているか知っていますか.

Javaでは非常に単純であることは知っていますが(そのための専用関数があります)、iOSではそうではありません。助けてください。

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

c# - .Wav Speex ヘッダー コンテンツに関する問題

Speex Voice ACM Codec 1.0.1.1 コーデックをインストールしましたが、この NSpeex(C#) パッケージの C# コードで記述されているものとは異なる .wav ヘッダーがあるようです。

「Speex Voice ACM Codec 1.0.1.1」で作成した .wav ファイルを読み取って正常にデコードできますが、.wav ファイルを作成すると、「Speex Voice ACM Codec 1.0.1.1」がヘッダーを認識しません。Hexエディタで確認したところ、.wavヘッダーに「Speex Voice ACM Codec 1.0.1.1」が作成するバイトと作成していないバイトがあり、NSpeex.PcmWaveWriterクラスとは異なっています。

だから、私はこの部分に同意します:

しかし、残りは NSpeex.PcmWaveWriter クラスのコードにあるものではありません。

Hex エディターでは、(上記の部分の後に) 「Speex Voice ACM Codec 1.0.1.1」によって作成された .wav ファイルに次のように表示されます。

しかし、それが何なのか、「Speex Voice ACM Codec 1.0.1.1」に対応する .wav ヘッダーを作成する方法がわかりません。繰り返しますが、彼らの .wav ファイルをデコードし、デコードできる .wav ファイルを作成できますが、そのコーデックは私の .wav ヘッダーを認識しないようです。

Speex は「オープン ソース」であるはずですが、誰かが .wav (speex) ヘッダーの秘密のバイトを明らかにできますか?

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

flash - フラッシュは Opus コーデックをサポートしていますか?

これをグーグルで検索しましたが、明確な答えが得られません。

私が理解している限り、.FLV コンテナー形式は現在次のオーディオ形式をサポートしています:
MP3、ADPCM、リニア PCM、Nellymoser、Speex、AAC、G.711 (内部使用のために予約されています)
Speex は時代遅れであり、提供する Opus に取って代わられましたSpeex のすべての機能に加えて、追加の SILK アルゴリズムの実装など

では、Flash は OPUS をサポートしていますか?

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

android - エコーキャンセル: 音声入力としてのマイク、出力としての MP3

私は現在、マイクの入力を監視しているアプリケーションに取り組んでいますが、同時にラウドスピーカーを介して特定の MP3 曲を再生できる必要があります。私が現在直面している問題は、MP3 を再生するとすぐに、もちろんマイクがこれを認識し、音量が上がるため、より多くのデータが返されることです。

MP3 のエコーをキャンセルする必要があります。Android 独自の AcousticEchoCanceller を試しましたが、Nexus 7 でも Nexus 4 でも利用できないため、機能しませんでした。 NDK に精通しており、これを既存のコードに埋め込む方法がわかりません。

だから私はこれを見つけました:https ://github.com/mutantbob/ndk-speex Javaラッパークラスを使用したNDK-Speexですが、残念ながらクラスはSpeex形式のサウンドのエンコードとデコード専用のようで、キャンセルされないようですどんな反響も。エコー キャンセレーションを追加するために Java ラッパーを拡張することについて読んだことがありますが、適切な開始点が見つかりません。誰かが正しい方向に向けてくれますか? それとも、目的地まで別のルートをたどる必要がありますか?