眠いしお腹すいたし(´・ω・`)

C#関連を主に書きます。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

NSpeex.Reactiveをリリースしてみました

この度

www.nuget.org

NSpeex.Reactiveというライブラリをリリースしました。

現在のバージョンは0.0.1です。

このライブラリはNSpeex

nspeex.codeplex.com

と、NSpeexをObserver/Observableな感じで使用するための余計なライブラリが含まれています。

NSpeex単体で使いたい場合は本家を使用してください。

NSpeex単体でnugetパッケージを作らなかったのはワザとです(^◇^)

このライブラリは.NET4、Xamarin.Android、Xamarin.iOSで利用することができます。

github.com

にて管理を行っています。

どんなライブラリ?

こんなライブラリです。

NSpeex - Speex for .Net and Silverlight - Home

プラスしてRxのサブジェクトっぽくNSpeexを使えるようにしてあるだけです。

強いていえば、XamarinでNSpeexが使えるよ(^◇^)っていうのが特徴です?

サンプルは?

すいません。間に合っていません。そのうちサンプルアプリを作ろうと思います。

コードのイメージはこんな感じです。

gist.github.com

どっかで見た気がします。

ObservableVoiceCaptureでキャプチャしたPCMをNSpeex.Reactiveでエンコード・デコードした後にDelayを1000msecかけて再生している例です。

どんなことに使えるの?

PCMデータをSpeexでエンコードしてネットワーク経由で送信して受信してデコードして再生するとVoIPになったりします。

現在の新しいVoIPなコーデックといえばOpusなのですが、Speexだってレイテンシも悪くないしイケてると思います。

たぶんそのうちOpusのライブラリ作ると思いますけど(^◇^)

おまけ

NSpeex/src/NSpeex.TypeScript at master · yuka1984/NSpeex · GitHub

以前のエントリー Netjsを使ってC#からTypeScriptへの変換をしてみた。 - 眠いしお腹すいたし(´・ω・`) で紹介したNSpeexのデコードの一部(NarrowBandにのみ対応)をTypeScriptで使用できるようにしたライブラリはこちらに管理を移動しました。

一応ブラウザで動かす例をちゃっかり載せときます。

gist.github.com

サンプルはWebSocket経由でSpeexエンコードされた音声データを受け取ってJSにてデコードしてWebAudioAPIを使用して再生している感じです。