Projects
View on GitHub
synodriver/pysilk
synodriver/pysilk has 27 GitHub stars and 3 forks. GitHot measured 0 stars in 24 hours and 0 in 7 days. Last checked 2026-11-15 06:38 UTC. Last push 2026-10-25.
Measured star growth
- in 24h
- 0
- in 7 days
- 0
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
stream encoder/decoder for silk and pcm
Creative & MediaREADME.md
Original✨ pysilk ✨
The python binding for silk-v3-decoder
安装
pip install silk-python
使用
- encode
import pysilk
with open("verybiginput.pcm", "rb") as pcm, open("output.silk", "wb") as silk:
pysilk.encode(pcm, silk, 24000, 24000)
- decode
import pysilk
with open("verybiginput.silk", "rb") as silk, open("output.pcm", "wb") as pcm:
pysilk.decode(silk, pcm, 24000)
支持功能
- 接受任何二进制的
file-like object,比如BytesIO,可以流式解码大文件 - 包装了silk的全部C接口的参数,当然他们都有合理的默认值
- 基于
Cython, 关键部位 内联C函数,高性能
公开函数
from typing import BinaryIO
def encode(input: BinaryIO, output: BinaryIO, sample_rate: int, bit_rate: int, max_internal_sample_rate: int = 24000, packet_loss_percentage: int = 0, complexity: int = 2, use_inband_fec: bool = False, use_dtx: bool = False, tencent: bool = True) -> None: ...
def decode(input: BinaryIO, output: BinaryIO, sample_rate: int, frame_size: int = 0, frames_per_packet: int = 1, more_internal_decoder_frames: bool = False, in_band_fec_offset: int = 0, loss: bool = False) -> None: ...
公开异常
class SilkError(Exception):
pass
✨v0.2.0✨
合并了CFFI 的工作
本机编译
python -m pip install setuptools wheel cython cffi
git clone https://github.com/synodriver/pysilk
cd pysilk
git submodule update --init --recursive
python setup.py bdist_wheel --use-cython --use-cffi
后端选择
默认由py实现决定,在cpython上自动选择cython后端,在pypy上自动选择cffi后端,使用SILK_USE_CFFI环境变量可以强制选择cffi