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.5.tar.gz
(203.7 kB
view hashes)
Built Distributions
Close
Hashes for graiax_silkcoder-0.2.5-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19c76d61a0d15646fc24cfc37a04cf4b3e62c77177d69aec6e703d4a80e60e5d |
|
MD5 | da899c38c3d3de80520537f0fd5461c5 |
|
BLAKE2b-256 | 4e724ec5abe0cda62d753966751330d769fb9463d3186da7194e91e50d170b8f |
Close
Hashes for graiax_silkcoder-0.2.5-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80cbc46a3df2a1065c9fe3b62e315496ff10e5c15303baaecf96f75d898cfd75 |
|
MD5 | 862ce0a5f59cb1fb3943166b023aaa34 |
|
BLAKE2b-256 | 041d24ee6b37bf4e5de35dc41ceb760aa56d1175a5420c56bca8989eb3dbb16f |
Close
Hashes for graiax_silkcoder-0.2.5-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd3bdbff9b387c2d527add0792938dc9ca05e0533c2e39ae1942b651a146dbf8 |
|
MD5 | 43ccc843e54a237c691bd55ec350a8ca |
|
BLAKE2b-256 | 71d33da46a4b008d2ae76d68313391b7d798cd40c27402e0dd67aa4e04f2ac86 |
Close
Hashes for graiax_silkcoder-0.2.5-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0246c7472476bc89ae677c45fde71925caf81960f001721462a24cd5cc0099cd |
|
MD5 | ff9ab17d83c90dd760c3b6ad2ef2d886 |
|
BLAKE2b-256 | d7e4cfa140c1992a30b36e5fedf16a5aaa89c52122474f4f67ca8b8971a344c9 |
Close
Hashes for graiax_silkcoder-0.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c329a9e3dc66b7367ac59062c8fd7a2c998d186f7d95e74c89083e21b9e5190b |
|
MD5 | 98207290b15c64ca415ba8cc97fd2f7d |
|
BLAKE2b-256 | ca55e52c07b487be49d08d30d5a44074436edee1cfc8c4188d6bc1ce488a18fb |
Close
Hashes for graiax_silkcoder-0.2.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10ad9c639336e14b6c44edac2cba16845b1b301985540acd3efa0a17161599df |
|
MD5 | 8df91ab3de96c1bc565ae43137d58055 |
|
BLAKE2b-256 | 9557b8c7e65f7fdd5a9c2738b3b1b77c228591ee9d8408ebec3f183d8ccb095c |
Close
Hashes for graiax_silkcoder-0.2.5-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf4e0eeb317a5ac48045b67e810c6aa11e2fd6167310d3f6401e211414606e38 |
|
MD5 | f375c8cbcb83b68537e9f7d295fe7605 |
|
BLAKE2b-256 | 16bc06a36f7e55e09697a319faaedd3f72a9516893932c1c05769ae6540b512c |
Close
Hashes for graiax_silkcoder-0.2.5-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83f3c81e3c6510f4b98cf7b692fa8582c48f12cc5b4f0d1263d03adf269e2f0d |
|
MD5 | 3332a7d4c93c7ee965d6e1cee88ce5a9 |
|
BLAKE2b-256 | 1f9159fc710cc3167840163f9766187c460b3181a05134d7b9ff1260439f92ca |
Close
Hashes for graiax_silkcoder-0.2.5-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a94ffddce8fb277740e00cffb070a89d054165192580594f7c22e918ea412fc5 |
|
MD5 | 442be7fc2848387e19e375a544f22ea9 |
|
BLAKE2b-256 | 480f768b1c720289c6d4a805282521e56ee280cae7867b8154f16f86326460ba |
Close
Hashes for graiax_silkcoder-0.2.5-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3da7853452f3f6d8aa905c6861eb6f0fdcf75022a5de1c3f0c16aed6b9ac2b9a |
|
MD5 | eccfa48102b528a4aebfb620dcb4eb66 |
|
BLAKE2b-256 | 124b25bf73e422fcec8862a26966ac3925b301866343d25a62a180c67353f70a |
Close
Hashes for graiax_silkcoder-0.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2f685a2c38d697cb1566f79fbed2d441ee514dd6ea147446e0f37565d51c88e |
|
MD5 | acc1d7957f13f6433f1029b9ab018c40 |
|
BLAKE2b-256 | bfdac2975bf3ba57ace61b18e0fa0ba808b92d950e7b865b6897dd917322acf6 |
Close
Hashes for graiax_silkcoder-0.2.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8f1bb6512ff7ac1eed64f50563a3fe4e577443baa7f5351b4c9202009598a7a |
|
MD5 | aef91b18e2a1cbde35f7acadab14603e |
|
BLAKE2b-256 | 08e30cf4c14a6daaa7ee401e76de9235cf292eb35f048aa4133e95f39ed8b75f |
Close
Hashes for graiax_silkcoder-0.2.5-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae8143a56a206e64e7a2557a9b74ca1d8ff33c85f147e16351ea0e965b6b6f3d |
|
MD5 | f66ea0d320a6a89534b43713259f03d5 |
|
BLAKE2b-256 | 3edd02d461a4f9776482ecb79639333e65873fb442926b87b9378ef4a89991a3 |
Close
Hashes for graiax_silkcoder-0.2.5-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bec76a5f5add68f2870f8495a5ecb3fe3ee97fb58fdb7246241e2af967a96eb0 |
|
MD5 | 30b93b9e692b1aa1792c3af7bd7d3dd4 |
|
BLAKE2b-256 | fc87f04e548dd7a9171d1fc70926f1ec15c8b14775afbf2425a411a961834115 |
Close
Hashes for graiax_silkcoder-0.2.5-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38d1717205496299d1ac4a5adb1247c52af5b7bbe400e8e128ab6ac89387fc05 |
|
MD5 | 8015319db241e480ba2c8b6464c00404 |
|
BLAKE2b-256 | 599a659253a42e472cb0b453d0686278042f9dab6c70719146b0a1d625732768 |
Close
Hashes for graiax_silkcoder-0.2.5-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a980813f340e53db98cfc8a3a38441c9937ef2fe4b503e66ce5b3e93f84f1d49 |
|
MD5 | 8c396f36fc414c17f829f748cae4a52b |
|
BLAKE2b-256 | 6e2fde503c029ea1da7edd543778c5dcd82335af6efa7a752e40dc1ed75e6ddf |
Close
Hashes for graiax_silkcoder-0.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b283bf43053f37b1a19d6e5f25156dbebd7e906a8b0ecbc7d1afd3b5e54d44d |
|
MD5 | 340fb23a4062a2292d721b1dc81e8cdc |
|
BLAKE2b-256 | 3c0aa13354304d447c77f0ebe904e3487eb0624d9de281b405314c1dd65ce067 |
Close
Hashes for graiax_silkcoder-0.2.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 744be9fe14c1c1f86fd59898e310602612087316d099ceb5aeb0feed9180452a |
|
MD5 | 9f2774988d08e80693794c6ef40dc864 |
|
BLAKE2b-256 | eca964ce423dd4c84e904a3d466baafe02d62c7050c9a5d788a3ccd3456a6241 |
Close
Hashes for graiax_silkcoder-0.2.5-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c702077befbf0376518a79211022ff5dee03cc221dea396a52ca9da257ec4ee0 |
|
MD5 | 77a713bb1af1e6291584e0d4e697ebf2 |
|
BLAKE2b-256 | 4e8d3c48dd04eaed2559233df920ee03dabf7f5e5900700e1a1fb483b8c25c20 |
Close
Hashes for graiax_silkcoder-0.2.5-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eeea49b9e04f9b685eaa5c0ea152a726d82799657a24efc7571e9387eb6c1a54 |
|
MD5 | 39444c5863ad5b37f96c0322f712cd55 |
|
BLAKE2b-256 | e7936688fe2d1d979b6420800a94e02932cbbd25d745af16fdbb5941e00b0c9e |
Close
Hashes for graiax_silkcoder-0.2.5-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 693748690c27c0fa23c77cf8cac77e5d6e981dcbe784e6b526d26164139b56e7 |
|
MD5 | a2d7f2ce2a8d91a934cec0e0c6de9d30 |
|
BLAKE2b-256 | 5c0ef4688eb5d0da67d7a6377c4ac9aecd3cf4a54427ff9b63fe886ab9a83477 |
Close
Hashes for graiax_silkcoder-0.2.5-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12d3eb005412910defb1fe3b2b386bea602a59ecf7b13c70842c5b9c19d64fe2 |
|
MD5 | e21089b887380e3efeeb44924abd690c |
|
BLAKE2b-256 | a337106f0f590d58d68e07cf7a83f77791e84ccae3984d98b293747702db462f |
Close
Hashes for graiax_silkcoder-0.2.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6323f1a43407a6828fd7f7f4a94cc1d3d0459a0879d927a50102a8d5a8606b7 |
|
MD5 | 4c341f14f7802dfab93691999c4c7a47 |
|
BLAKE2b-256 | 306c3e8a91c852fa03423e9a1ddbcc615b2dadb28660fe7bc0856a8b7140ebcd |
Close
Hashes for graiax_silkcoder-0.2.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54cfcdceb3d6b4587c5bf56e9575c54881836ad1994ddade153179fb731f4401 |
|
MD5 | 1096ad3128d2fe5d9ce1a0e51d991564 |
|
BLAKE2b-256 | 9b971b8bd29b2db0be091c2c5cbf1ee7591e09e5d664f86c656f9d783a7a3557 |
Close
Hashes for graiax_silkcoder-0.2.5-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82c768318f396953089a4469a707fcc750c3cb6f76ed5bde49752e7c138315d8 |
|
MD5 | bc1e1871028778826a7a8edd7b07e7a8 |
|
BLAKE2b-256 | b1b7bf90c569470abb072732ba9a8cf8a4715a320dba63b9a285084e0cbf74c9 |
Close
Hashes for graiax_silkcoder-0.2.5-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6099e9093c65edac369cc11cee6eb1323eff94b0497571d3f537a029307c3234 |
|
MD5 | 90816e34936bf491885851cb8100fc83 |
|
BLAKE2b-256 | cb2a528220465b6bc57bbe1bc817cbcbedff1519d2cbe7cc67dfc77fb4e53ee0 |
Close
Hashes for graiax_silkcoder-0.2.5-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b1794ec5bbae552496d17dd572bd759494c3960930f16898ce66e1acf1561be |
|
MD5 | 29f50888ca37ccf9b3b750cc51dafb3d |
|
BLAKE2b-256 | 767d121aa71564038489fa3ee132c2ecbb3041e7fc1d741eb3ef134d458acf98 |
Close
Hashes for graiax_silkcoder-0.2.5-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 846bbdda6fc2bfe3301c3939cd1aa9a9633df3cce50b393e77ed0dd67cc4fefb |
|
MD5 | 03554951288d8c1c2f10c08374eca710 |
|
BLAKE2b-256 | aa73ebf3e3c5f65e7d55ba45a175cb7a12e09165042697a778c422fef462150c |
Close
Hashes for graiax_silkcoder-0.2.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88b12118a2a64a0aa09a367f4d56d4012e6ac50c18091f4685a4e1bd1491ba9f |
|
MD5 | 808da4d1f277de9c6540341f8edc98b3 |
|
BLAKE2b-256 | 406be67e0777cc70a209e1f6dd9a60428d61183bf68c3e0e03efe65ad4ca55c8 |
Close
Hashes for graiax_silkcoder-0.2.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf60ee88d5c81552c1fa186116ead1394465cf0d2559867fe5bee43d7df7106e |
|
MD5 | e37163c5f5fe80bc1c696a22e31cd532 |
|
BLAKE2b-256 | 170f706a86bffe2e2653407e0f1145c52e201161248ee746bcc49147a7a2e662 |