transform audio file to silk
Project description
Graiax-silkcoder
现在版本:
这,是一个Python的silk转码器
通过将kn007/silk-v3-decoder通过简单的封装制成
安装
从 PyPI
# 如果需要转换非wav的音频文件,则需要自行安装ffmpeg
pip install graiax-silkcoder
# 也可以通过下面的方式使用imageio-ffmpeg中的ffmpeg
pip install graiax-silkcoder[ffmpeg]
注: 假设你是Windows用户,安装时出现了error: Microsoft Visual C++ 14.0 is required:
请安装Microsoft C++ Build Tools
从 conda-forge
conda install graiax-silkcoder -c conda-forge
# 如果需要 ffmpeg,可以一并从 conda-forge 安装
conda install ffmpeg -c conda-forge
自定义ffmpeg_path
可能有一些用户会想要自定义ffmpeg的路径 你可以使用以下方法解决:
from graiax import silkcoder
silkcoder.set_ffmpeg_path("./ffmpeg")
使用方法
同步情况下
from pathlib import Path
from graiax import silkcoder
# silk编码
# 你可以文件→文件
silkcoder.encode('a.wav', 'a.silk')
# 你可以文件→二进制数据
silk: bytes = silkcoder.encode('a.wav')
# 你可以二进制数据→二进制数据
silk: bytes = silkcoder.encode(Path('a.wav').read_bytes())
# 你可以二进制数据→文件
silkcoder.encode(Path('a.wav').read_bytes(), 'a.silk', audio_format='wav')
# 你可以指定让ffmpeg解码音频,也可以让程序自己选择
# 注:只有当音频是wav且ensure_ffmpeg=None时才会不使用ffmpeg处理
silkcoder.encode('a.wav', 'a.silk', ensure_ffmpeg=True)
# 你也可以设置码率(默认状态下将会将尝试将目标语音大小限制在980kb上下)
silkcoder.encode('a.wav', 'a.silk', rate=70000)
# 你甚至可以剪辑音频
silkcoder.encode('a.wav', 'a.silk', ss=10, t=5) # 从第10s开始剪辑5s的音频
# silk解码
# 你可以文件→文件
silkcoder.decode('a.silk', 'a.wav')
# 你可以文件→二进制数据
wav: bytes = silkcoder.decode('a.silk')
# 你可以二进制数据→二进制数据(必填audio_format)
mp3: bytes = silkcoder.decode(Path('a.silk').read_bytes(), audio_format='mp3')
# 你可以二进制数据→文件
silkcoder.decode(Path('a.silk').read_bytes(), 'a.wav')
# 你可以指定让ffmpeg解码音频,也可以让程序自己选择
# 注:只有当音频是wav且ensure_ffmpeg=None时才会不使用ffmpeg处理
silkcoder.decode('a.silk', 'a.wav', ensure_ffmpeg=True)
# 你也可以直接传入ffmpeg参数来输出
silkcoder.decode('a.silk', 'a.mp3', ffmpeg_para=['-ab', '320k'])
异步情况下
# 假设以 'python -m asyncio' 启动的 python 终端
from pathlib import Path
from graiax import silkcoder
# silk编码
# 你可以文件→文件
await silkcoder.async_encode('a.wav', 'a.silk')
# 你可以文件→二进制数据
silk: bytes = await silkcoder.async_encode('a.wav')
# 你可以二进制数据→二进制数据
silk: bytes = await silkcoder.async_encode(Path('a.wav').read_bytes())
# 你可以二进制数据→文件
await silkcoder.async_encode(Path('a.wav').read_bytes(), 'a.silk', audio_format='wav')
# 你可以指定让ffmpeg解码音频,也可以让程序自己选择
# 注:只有当音频是wav且ensure_ffmpeg=None时才会不使用ffmpeg处理
await silkcoder.async_encode('a.wav', 'a.silk', ensure_ffmpeg=True)
# 你也可以设置码率(默认状态下将会将尝试将目标语音大小限制在980kb上下)
await silkcoder.async_encode('a.wav', 'a.silk', rate=70000)
# 你甚至可以剪辑音频
await silkcoder.async_encode('a.wav', 'a.silk', ss=10, t=5) # 从第10s开始剪辑5s的音频
# silk解码
# 你可以文件→文件
await silkcoder.async_decode('a.silk', 'a.wav')
# 你可以文件→二进制数据
wav: bytes = await silkcoder.async_decode('a.silk')
# 你可以二进制数据→二进制数据(必填audio_format)
mp3: bytes = await silkcoder.async_decode(Path('a.silk').read_bytes(), audio_format='mp3')
# 你可以二进制数据→文件
await silkcoder.async_decode(Path('a.silk').read_bytes(), 'a.wav')
# 你可以指定让ffmpeg解码音频,也可以让程序自己选择
# 注:只有当音频是wav且ensure_ffmpeg=None时才会不使用ffmpeg处理
await silkcoder.async_decode('a.silk', 'a.wav', ensure_ffmpeg=True)
# 你也可以直接传入ffmpeg参数来输出
await silkcoder.async_decode('a.silk', 'a.mp3', ffmpeg_para=['-ab', '320k'])
CLI(0.2.0新增)
使用办法
# 其他参数与encode / decode 保持一致
python -m graiax.silkcoder encode -i "a.wav" "a.silk"
python -m graiax.silkcoder decode -i "a.silk" "a.wav"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
graiax-silkcoder-0.2.4.tar.gz
(203.6 kB
view hashes)
Built Distributions
Close
Hashes for graiax_silkcoder-0.2.4-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04f7fcd52f2a6053dbc766bd3e92797dcc728f9ba3b0dc5f38b6fe8ba158b5b0 |
|
MD5 | eb0ce0dc04a9b5e7458db0b1e4154795 |
|
BLAKE2b-256 | 56cf84bd18bad3d9f19d2ac30273231983338ad624866a6b08ea43a9a8ca4a42 |
Close
Hashes for graiax_silkcoder-0.2.4-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 089e01cec66237201ebe914c32e5de9ecb2fd5b137e09de03642bacd1f493eba |
|
MD5 | a0f20b01e0b44a358be894d47b9e4e2f |
|
BLAKE2b-256 | f8101d6de4b99a032636a59ed9e34f4478abd238d79fb64df738ffacc180a510 |
Close
Hashes for graiax_silkcoder-0.2.4-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43a87d5652e34cdb776eb22f736ef54b67e003ef703683a7b5c07f9a8ae26eb1 |
|
MD5 | 1120dc3019300c93b576af8ccf38956b |
|
BLAKE2b-256 | 6ce9d7bf055665b8206321291ac0f34c3f772c6eace8289d23302827f5d60d12 |
Close
Hashes for graiax_silkcoder-0.2.4-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15eec4807ac3d726671bd7651e2c36163d6cc3c362d00f3a13bf5714c5e1007b |
|
MD5 | c5775beb12ce22d4ab267255120bb83e |
|
BLAKE2b-256 | 81633abcf2010bae92c48ce989cff425ebec1a2a9457537897544472fec9b697 |
Close
Hashes for graiax_silkcoder-0.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a15f953433d8f8fe636c502e2bacaad8fa36a8a555630b3b2b62da3084a5850 |
|
MD5 | 7135661a156346393263c1e2d1cbba84 |
|
BLAKE2b-256 | 69d07e183e19eaae5d8b97143b74920ce9ccf2516ab9fcadc573376aed08f8cb |
Close
Hashes for graiax_silkcoder-0.2.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 119ea4287591fdf2b66adf49a46fa506ec691d33e627d2eaa148e52c810d326e |
|
MD5 | 69f22b431e2c2b43742bed474fffc170 |
|
BLAKE2b-256 | 5d2eab789c3a6ade208abf0fc1b495b96f9511439d0a50282ad33dfd9a1b0aef |
Close
Hashes for graiax_silkcoder-0.2.4-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7a9ab7ffe2bc63b292e90b5c31a38de8000b1ecbdd81fc5b8c531891b1896be |
|
MD5 | 4ff545915c698d77b9ecf9c226af8085 |
|
BLAKE2b-256 | a3e9685be7372e5f506dd77a5597ab49ec1b074e0d4aeba7ab5a32c8b8fb217d |
Close
Hashes for graiax_silkcoder-0.2.4-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de66eca3e41f0b0bc67ef3c10ed5c184860c1887c615568aef7a13999b34eba0 |
|
MD5 | dcd7ba7c8874340a091647057270ec55 |
|
BLAKE2b-256 | 09c521abaceb02196160495a5f1273bc2f48379300abade900103e3a4f97c79e |
Close
Hashes for graiax_silkcoder-0.2.4-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 762b4b5298e98fd4a80f95b88c2ca9c2e1040b376b07c13a68d4eb1926391337 |
|
MD5 | f849ae33aa6bdf52ff694ee51f3084b7 |
|
BLAKE2b-256 | 24731a63435e520a858dd37561cb88dba030be85b0d854f0ad20cdb94646bbaf |
Close
Hashes for graiax_silkcoder-0.2.4-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b3dbc82658c4b484cbca7b169c76db63771744253280f4cc1f8444eb03ca1a1 |
|
MD5 | 92bdaeb7bd779d1b83509be824318078 |
|
BLAKE2b-256 | e909c02488ff3e1e5099abb31d4fe38964468c53e3c863df575ecca92dd9e2af |
Close
Hashes for graiax_silkcoder-0.2.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ad4167727002c2c60485656c7930c0864a636d569801c66b7bbae8256fc7a54 |
|
MD5 | e0c8759689447a3fb1544559f544164d |
|
BLAKE2b-256 | 27a42cd6a93ad337524a71e17c70343221ecf0c802f481096d6e48126c916f6e |
Close
Hashes for graiax_silkcoder-0.2.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22d44a3752c8c1d37631e2fb922d4ac43c41d252075df0dc3210160ce2e4947f |
|
MD5 | 0243b669e12372666b0efe61c25b9793 |
|
BLAKE2b-256 | c2113154e664a973502ac027ba5156a4555dc2039f51dddf5d7fa1d27e36a2d8 |
Close
Hashes for graiax_silkcoder-0.2.4-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00712dc17d9eb5b00804240a088f6d7e82d9395a340a1e2583c16da917582a3c |
|
MD5 | 5133c2d16764b1edf21030be7295f43f |
|
BLAKE2b-256 | cb5bacf5328813e27b69c0e14ad07114f3bdecf0ac9cd2ab9556841a23719380 |
Close
Hashes for graiax_silkcoder-0.2.4-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66f66d92863bf5948993e650409ba08c73f43647392e6526673535df4120a7f7 |
|
MD5 | aaabeb450e70b2b608a3145958d5ccf4 |
|
BLAKE2b-256 | 035f607be91a50cf266719cdd126b4cdef2f770f91200d9697287aaef6fa00f3 |
Close
Hashes for graiax_silkcoder-0.2.4-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5c079da63b442479af1564374335fb5662ed4949e3d1ce77d54656cd957577f |
|
MD5 | a9d29c28b0967131231660c3d280844b |
|
BLAKE2b-256 | f8310bfd3d8ce348a71b2d255b0883a2ceb035e68c5e8219eb0597bc00cacd82 |
Close
Hashes for graiax_silkcoder-0.2.4-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a75b7f5f88b51f671f953e5d5171f912c3ae199ec26a4d5d014678daa4bf6851 |
|
MD5 | da86787df2ef7d6903dedc4160639b15 |
|
BLAKE2b-256 | 75ba84f01f1517442da463e9bdbe7f65faec37d6b3c93c13eb56b3e94218b93f |
Close
Hashes for graiax_silkcoder-0.2.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57705d3a31b3d2185a5af86a5f0651a4a53c0fbbbd69c64a4699395a23929fc3 |
|
MD5 | 9419bb7af8c3a014642973b992cbcf0d |
|
BLAKE2b-256 | 7916fd1316f1cc70ab7187e3b9640361adfe25fb6096755697b93bb92576aece |
Close
Hashes for graiax_silkcoder-0.2.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af04941f598440b0c19902d18d7dd1b172746b316409e69824d11efc346db9f6 |
|
MD5 | 078df51636a4dac762962028df9214ad |
|
BLAKE2b-256 | f0042c00932d7991b1f74f15b509b441a4f46934776952427a41d9b1078ed255 |
Close
Hashes for graiax_silkcoder-0.2.4-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ab3c6b5579c92641a83c70d3b3b937177e8a7b0159f9950676bebacca4e4edf |
|
MD5 | ff0600b69450b47a4023af465ce81d17 |
|
BLAKE2b-256 | 523f813bdb1e85117ef469bc06e0e04ca5b5489bedecffdd997409cadb40f4a4 |
Close
Hashes for graiax_silkcoder-0.2.4-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9abf0cb65a231b50e51b44ae7c633cec006ee0a34e78cc9d678243fb7f9ebcd |
|
MD5 | 6d56f19c52bc2faae19e1c73e525a581 |
|
BLAKE2b-256 | 396a826191bef77e742742b36b03b7be33f8fad368a441494ca4c0cdbd864fca |
Close
Hashes for graiax_silkcoder-0.2.4-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 486855c2494c9eb73e484e47ca3f6cae4c65d6afc3a2d69d3db111d1f432d838 |
|
MD5 | 9ed8872fa9a7424aeef92ae1aef9572c |
|
BLAKE2b-256 | b41e94100e7762e3b141aba00778faa889853f56cc3ae527632db330a47a57ca |
Close
Hashes for graiax_silkcoder-0.2.4-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4dccd650f29cae1b1c9ccaf75749769e92acc912ee04fc30bad9b83df060ebd2 |
|
MD5 | 479d47b8536dc9d92c295d7d29dfcc04 |
|
BLAKE2b-256 | 55e3a15e80d49fb8cd34a0c3253bbbad2da8f25da6de673a4ec0755d6690a07f |
Close
Hashes for graiax_silkcoder-0.2.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e20637429122a155403b210082cae7421ef0257eb285fa7852b9587b685a4aa |
|
MD5 | 6ae5102c7e261cb4391e721c97bcfd93 |
|
BLAKE2b-256 | 63d5b3fa44f1ed5d0b568b88dabf14516696c4246b38a89bab7febaa8a490220 |
Close
Hashes for graiax_silkcoder-0.2.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f9519c1d249485845339d4f42b95aff67c4cd10e68822ef047d6195b5adc7fb |
|
MD5 | ed4566694070960e4b9d603693aba6e5 |
|
BLAKE2b-256 | c041410f0738a545893fdb15d9c0a4dda73732f259ba8023cd5c5870957b00f2 |
Close
Hashes for graiax_silkcoder-0.2.4-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d96cf023bedc3213dcc50d6ae6e4872cf98c7bec31c2e77f49bddea97815d2ef |
|
MD5 | e847eb7923459da433224902c1f30b59 |
|
BLAKE2b-256 | 59e670ac63dd8198f31a50f9964198db8e22dd32fd3acf30cf113b71d74a2ef0 |
Close
Hashes for graiax_silkcoder-0.2.4-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6544950a74d7fc83f8b341aa9b03fc15a4e0e122624a17f23521592566679adf |
|
MD5 | 48cea54d2ca2c05cb8b66a2f5b1fb55a |
|
BLAKE2b-256 | 5b9d7681c556764b3d1621239c01cf791e693445bc55717205954aae9bb85f20 |
Close
Hashes for graiax_silkcoder-0.2.4-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2fdd0f1aa8d47835bf40985ef264bc508612dd1c9b52f54620dec228e99f2fd |
|
MD5 | 2fb660aee9a499ef0d681c8c76daf53f |
|
BLAKE2b-256 | d6af39033ddb9f709329c2963b90ed8b9c587aa1c8f6e37d37a6af0fba416a84 |
Close
Hashes for graiax_silkcoder-0.2.4-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 048012b589429e4fae0f95025d90ba7e7d415875e6cbf1ae261b90935bd2d046 |
|
MD5 | 8b0e74b1fe0550b7fc82e17f72c9e131 |
|
BLAKE2b-256 | 10fcefa350c80998ddd58bf32803a2f686501da295fde070e61deebaae3f0aac |
Close
Hashes for graiax_silkcoder-0.2.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 712ab49d024d4f8dd6867d5d4fe01e35f826823472ad353dae57da613553666f |
|
MD5 | c9f3a5ef5650fbf92d68f486e988d966 |
|
BLAKE2b-256 | 2cc83d7c3cee1a80ac762f539ca8269fc77ae368c1412ce83decee9d3487b13e |
Close
Hashes for graiax_silkcoder-0.2.4-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e93f620e156d482fe8d47af58026a4c29f3e3d816abc1c094f1633ca15b7571 |
|
MD5 | d5833712f8fac627460cffd7c43ff60f |
|
BLAKE2b-256 | 04b88010e893b135a1f71194dece7bdcf107bd5d2da3adbdd5dab970aa77683b |