• Stars
    star
    105
  • Rank 328,196 (Top 7 %)
  • Language
    TypeScript
  • License
    BSD 3-Clause "New...
  • Created over 11 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Javascript Opus Encoder/Decoder, Speexdsp based Resampler and WebAudio Player Sample

libopus.js

非可逆音声符号形式であるOpusのJavaScript実装と, Webブラウザを用いてOpusのエンコード・デコードを行うサンプルです.

TypeScriptで記述しています.

Demo: https://kazuki.github.io/opus.js-sample/index.html

詳細

OpusのJavaScript実装は,Xiph.org Foundationによる Opusの実装Emscriptenを使ってコンパイルしたものです.

Webブラウザを用いてOpusのエンコード・デコードを行うサンプルでは, ローカルに保存してあるRIFF PCM Waveファイルを再生したり, そのファイルを利用して,エンコード速度・デコード速度を測定するほか, エンコード結果をデコードし,その結果を再生することが出来ます.

このエンコード・デコード機能のサンプルでは, WebWorkerを利用し別スレッドでエンコード・デコード処理を行うため, ブラウザの他の処理に影響を与えません. また,Opusのデコード負荷がそれほど高くないことと, Emscriptenが出力するasm.jsは高速に動作するため,スマートフォン上でもOpusのリアルタイムデコードが可能です.

Opusは限られたサンプリングレートにしか対応しておらず, また,WebAudioのAudioContextは環境に依存したサンプリングレートでしか動作しないため, このサンプルではSpeexのリサンプラーを利用してサンプリングレートを合わせています.

各種バージョン

  • opus: master (3a1dc9dc, Tue Aug 4 15:24:21 2015 -0400)
  • speexdsp: 1.2rc3 (887ac103, Mon Dec 15 01:27:40 2014 -0500)
  • emscripten: v1.34.8

ビルド方法

Makefileを用意してありますので,以下のコマンドを実行してください. 事前にemscriptenの各種実行ファイルにパスを通す必要があります. また,opus/speexdspがgcc等を使って普通にビルドできる環境である必要が有ります.

$ git clone --recursive https://github.com/kazuki/opus.js-sample.git
$ cd opus.js-sample
$ git submodule init
$ git submodule update
$ make

ライセンス

修正BSDライセンス

More Repositories

1

video-codec.js

JavaScript Video Encoder/Decoder Sample (daala/libvpx/openH264 compiled with emscripten to JavaScript)
TypeScript
85
star
2

mediacodec.wasm

Audio/Video Codec in WebAssembly
TypeScript
25
star
3

alsa-dsd-play-sample

ALSA DSD(Direct Stream Digital) Player Sample
C++
12
star
4

xfce-bing-wallpaper

Python
9
star
5

httpserver

C#
8
star
6

lwc

大型ワカメ衝突型加速器
Rust
7
star
7

epub3-converter

epub3 packaging script + online novel to epub3 converter
Python
7
star
8

opencrypto.net

C#
7
star
9

rust-hsa

HSA (Heterogeneous System Architecture) bindings for Rust
Rust
5
star
10

webcrypto-ecc-sample

WebCryptographyAPI (ECDH/ECDSA/ECIES) + IndexedDB based KeyStore Sample
TypeScript
5
star
11

oclcrypto

Cryptographic Library written by OpenCL
C#
5
star
12

opencrypto-tls

TLS/SSL Library (written by C#)
C#
5
star
13

opencl.net

OpenCL binding for C#/.NET
C#
4
star
14

waifu2x-hsa

Rust
4
star
15

EncryptedOneDrive

Userspace FileSystem over Microsoft OneDriver
C#
3
star
16

rds-filetransfer

Rust
3
star
17

xmlconfiglib

C#
3
star
18

ktwt

C#
3
star
19

rnnoise.wasm

TypeScript
2
star
20

p2pncs

P2P(Distributed Hash Table) Anonymous Communication System (Chat, BBS, ...)
C#
2
star
21

webrtc_media_cast

Browswer Only PeerCast like Audio Multicast Sample (WebAudio ScriptProcessor / Opus audio codec / WebWorkers / WebRTC DataChannel)
JavaScript
2
star
22

embedded-jubatus-python-obsolete

Python
2
star
23

thunar-nilfs2-plugin

C
2
star
24

hadoop-yarn-appmaster-bridge

Hadoop YARN ApplicationMaster Bridge Application
Java
2
star
25

SpeechRecognition-Sample

This library is SpeechRecognition API (Web Speech API) compatible implementation for various cloud-based speech recognition engines.
TypeScript
2
star
26

pyramid-oas3

Python
2
star
27

webrtc_alm

Application-Layer Multicast (Overlay Multicast) Example using WebRTC DataChannel / WebSocket
JavaScript
2
star
28

external-merge-sort-cpp

Multithreaded External Merge Sort Implementation in C++17
C++
1
star
29

opencl-cuda-microbench

C++
1
star
30

zxing-wasm

C++
1
star
31

sota

Python
1
star
32

sfmt-sample

SFMT(SIMD-oriented Fast Mersenne Twister) Sample
C++
1
star
33

jubatus-csharp-client

jubatus C#/CLI(.NET) client library
C#
1
star
34

webrtc_p2p

General-Purpose P2P Communitation Framework based on WebRTC DataChannel
1
star
35

overlay

おれおれ gentoo portage overlay
Shell
1
star
36

python-asyncio-rpc

jsonrpc2.0 / msgpack-rpc with asyncio
Python
1
star
37

kl1-bigint

Perl
1
star
38

ringo-lineage-tree

りんご
Makefile
1
star