All Projects → Ang-YC → Wx Voice

Ang-YC / Wx Voice

Licence: mit
Convert audio files between Tencent apps (Weixin / Wechat, QQ) and Silk codec with other general formats such as MP3 and M4A

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Wx Voice

Silk V3 Decoder
kn007's blog
Stars: ✭ 1,832 (+1869.89%)
Mutual labels:  decoder, encoder, convert, wechat
BatchEncoder
BatchEncoder is an audio files conversion software.
Stars: ✭ 145 (+55.91%)
Mutual labels:  converter, encoder, decoder
Jave2
The JAVE (Java Audio Video Encoder) library is Java wrapper on the ffmpeg project
Stars: ✭ 570 (+512.9%)
Mutual labels:  converter, decoder, encoder
Miniweather
基于koa的微信公众号开发
Stars: ✭ 67 (-27.96%)
Mutual labels:  wechat, weixin
Wxpay Sdk
Server-side SDK of Weixin/WeChat, the Java binding.
Stars: ✭ 63 (-32.26%)
Mutual labels:  wechat, weixin
Lxspider
爬虫案例合集。包括但不限于《淘宝、京东、天猫、豆瓣、抖音、快手、微博、微信、阿里、头条、pdd、优酷、爱奇艺、携程、12306、58、搜狐、百度指数、维普万方、Zlibraty、Oalib、小说、招标网、采购网、小红书》
Stars: ✭ 60 (-35.48%)
Mutual labels:  wechat, weixin
Wxjava
Wechat-Group/WxJava的备份,有问题请到对应项目下讨论
Stars: ✭ 56 (-39.78%)
Mutual labels:  wechat, weixin
Wemark
微信小程序Markdown渲染库
Stars: ✭ 1,159 (+1146.24%)
Mutual labels:  wechat, weixin
Offiaccount
[微信公众号] A fast wechat offiaccount development sdk written in Golang
Stars: ✭ 68 (-26.88%)
Mutual labels:  wechat, weixin
Teepay
Typecho 个人支付宝、微信收款插件
Stars: ✭ 90 (-3.23%)
Mutual labels:  wechat, weixin
Weixin Java Mp Demo
基于Spring Boot 和 WxJava 实现的微信公众号Java后端Demo,支持多公众号
Stars: ✭ 1,291 (+1288.17%)
Mutual labels:  wechat, weixin
Iced
Blazing fast and correct x86/x64 disassembler, assembler, decoder, encoder for .NET, Rust, Python, JavaScript
Stars: ✭ 1,102 (+1084.95%)
Mutual labels:  decoder, encoder
Ffjpeg
a simple jpeg codec.
Stars: ✭ 58 (-37.63%)
Mutual labels:  decoder, encoder
Polar 3gpp Matlab
Matlab simulations of the encoder and SCL decoder for the New Radio polar code from 3GPP Release 15
Stars: ✭ 67 (-27.96%)
Mutual labels:  decoder, encoder
Reed Solomon
Reed Solomon BCH encoder and decoder
Stars: ✭ 57 (-38.71%)
Mutual labels:  decoder, encoder
Tina
💃 一款轻巧的渐进式微信小程序框架
Stars: ✭ 1,153 (+1139.78%)
Mutual labels:  wechat, weixin
Wechat
Wechat API wrapper in Elixir
Stars: ✭ 70 (-24.73%)
Mutual labels:  wechat, weixin
Mojo Weixin
使用Perl语言(不会没关系)编写的个人账号微信/weixin/wechat客户端框架(非GUI),可通过插件提供基于HTTP协议的api接口供其他语言或系统调用
Stars: ✭ 1,181 (+1169.89%)
Mutual labels:  wechat, weixin
Youtube Channel Name Converter
A Youtube Channel Name to ID Converter
Stars: ✭ 75 (-19.35%)
Mutual labels:  converter, convert
Dragtodismiss Pangesture
仿微信,微博的大图查看和视频播放 拖拽消失的手势动画。手势单独已抽离出来,可用于任何视图。Simulate Wechat's disappeared gesture animation by dragging when the big picture viewing or video playback . Gestures are separated and can be used in any view
Stars: ✭ 55 (-40.86%)
Mutual labels:  wechat, weixin

wx-voice npm

Convert audio files between Tencent apps (Weixin / Wechat, QQ) and Silk codec with other general formats such as MP3 and M4A
中文版

Install

$ npm install wx-voice --save
$ npm install wx-voice -g
$ wx-voice compile

Prerequisites

CLI Usage

wx-voice <command> <options>

Example:
$ wx-voice decode -i input.silk -o output.mp3 -f mp3
$ wx-voice encode -i input.mp3 -o output.silk -f silk

CLI

Command:
  decode    decode to general audio format
  encode    encode from general audio format
  compile   compile wx-voice library
  clean     remove compiled library

Options:
  -i <input>    input file path
  -o <output>   output file path
  -f <format>   format of the output file
  --bitrate     bitrate of the output file
  --frequency   frequency of the output file
  --channels    channels of the output file

API Usage

// Initialize
const WxVoice = require('wx-voice');
var voice = new WxVoice();

// Error handler
voice.on("error", (err) => console.log(err));

// Decode silk to MP3
voice.decode(
    "input.silk", "output.mp3", { format: "mp3" },
    (file) => console.log(file));

// Output: "/path/to/output.mp3"

API

new WxVoice([tempFolder, [ffmpegPath]])

Initialize wxVoice object

Parameter Description
tempFolder Folder of temporary files, default to system temporary
ffmpegPath Custom path to ffmpeg executables, default using $PATH

decode(input, output, [options, [callback]])

Decode the audio to general formats

encode(input, output, [options, [callback]])

Encode the audio to silk/webm format

Parameter Description
input Input audio path
output Output audio path
options Output options (JS Object), see Options
callback Callback with output as parameter when decode success, undefined otherwise
voice.encode(
    "input.mp3", "output.silk", { format: "silk" },
    (file) => console.log(file));

// Output: "/path/to/output.silk"

duration(filePath, [callback])

Get the duration of the audio file
(Decode to general audio format before calling this method)

Parameter Description
filePath File path to the audio
callback Callback with duration of the audio in second as parameter when decode success, 0 otherwise
voice.encode("output.mp3", (dur) => console.log(dur));
// Output: "10.290"

Options

Javascript Object to set options for the output file

Parameter Description
format Format to be encoded/decoded (silk, webm, mp3, m4a...), default parse from output
bitrate Bitrate of the output, bps unit
frequency Frequency of the output, Hz unit
channels Channels of the output, default to 1

File types

Decode: Tested on mp3, m4a, wav, pcm
Encode: Tested on silk, silk_amr, webm

Todo

  • Use options as parameter instead of multiple arguments
  • Timeout to stop the convert process if it takes too long
  • Batch conversion using command line
  • Support Windows

Installing build tools

OS Command
Ubuntu sudo apt-get install build-essential
CentOS sudo yum groupinstall 'Development Tools'
Mac Download XCode

Installing ffmpeg

Ubuntu

$ sudo add-apt-repository ppa:mc3man/trusty-media  
$ sudo apt-get update  
$ sudo apt-get install ffmpeg

CentOS

$ sudo yum install epel-release
$ sudo yum update
$ sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

For CentOS 7:

$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

For CentOS 6:

$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm

Install FFMPEG:

$ sudo yum install ffmpeg

Mac

$ brew install ffmpeg

License

MIT © Ang YC

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].