transform audio file to silk
Project description
Graiax-silkcoder
现在版本:
这,是一个Python的silk转码器
通过将kn007/silk-v3-decoder通过简单的封装制成
安装
# 如果需要转换非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
自定义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.1.tar.gz
(238.0 kB
view hashes)
Built Distributions
Close
Hashes for graiax_silkcoder-0.2.1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ddb0a4d9ebc38483763f8a65468752baaac6234d0008da6daf6d0a45fca23ed |
|
MD5 | 8dec6e947c4a3c44aaa98869e782278c |
|
BLAKE2b-256 | f89e3e3e194df92849e0da2058a3b68f5ac735fd1334382fd06a1a9ecb2c4d39 |
Close
Hashes for graiax_silkcoder-0.2.1-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 582159e7d7541b38b83e4e2cb7d912106b98b7ede81959a4c9047de67194f3ab |
|
MD5 | e0b6750776e39a0eb056bd5e44ebec79 |
|
BLAKE2b-256 | d37055ba34d51a192737e8f736b641631d778fbb9337fc063e059cf9378e3043 |
Close
Hashes for graiax_silkcoder-0.2.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72341ac638b31933892f34a40009453475385537415c7641f097cf91e098c847 |
|
MD5 | dbb5f874973ed9b6c5e40c4e2f711c02 |
|
BLAKE2b-256 | 65e36c6dfd02d5ec533a4009f21148fd1d52728bcc23e74281aa90353aabd74e |
Close
Hashes for graiax_silkcoder-0.2.1-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac19494340a5e2c7def1185e2b7acbdb92c09e533b1bdd5e0a0d9211e7997b64 |
|
MD5 | 2ad9c71520e88201f66459f3891d18ac |
|
BLAKE2b-256 | 483e511b41474efc4d2f8e2a525791d2cbfb51792a16c5b74ecb311497240e18 |
Close
Hashes for graiax_silkcoder-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 628687af73aec72521103d4e0924d35cb7897ffd3f2a4f2c6aa2fed2fbeb857c |
|
MD5 | a5bf907064c15ddde3e2c481da0a75cd |
|
BLAKE2b-256 | 239d9dc6db72d405ba4877004bab4a08fa37dfe723b9d2436a8c05d4cc04211f |
Close
Hashes for graiax_silkcoder-0.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 907906d63347e9bf727aa80c0d4bd72d767b3aa63967131c71cf2ad485e1f266 |
|
MD5 | 667e401a8b1371701f8c8f7d1249b59b |
|
BLAKE2b-256 | 35d0b59cc4fe06946a4d40178a1b5e999bd3b0070f30815d511cde6d05da8755 |
Close
Hashes for graiax_silkcoder-0.2.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8674dfe6063710b97b85abf30abb62e3fd385be5bff208416ffeb161b004c6b9 |
|
MD5 | 72b8dd4a422c3fe7d08fe1b9072e1c40 |
|
BLAKE2b-256 | fdc007937f0b5f4ab463f4a4429c19c8a1725deff441ea1390b89ff1282c2fa0 |
Close
Hashes for graiax_silkcoder-0.2.1-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ae40e48ce2c41bb8e7a3f29a4d0b4d27c811108f4968867c57752ee59b9628d |
|
MD5 | 05f887fdd94d09f019c56f28d60ef039 |
|
BLAKE2b-256 | b244bd5a9f3dfe7d17930f85d5dc0decb055702b471ae4b56afa891d771b0e2f |
Close
Hashes for graiax_silkcoder-0.2.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6a0fe826766041c08f7b87cc29a2797dc1cdde9f21927d45aa24e4ee80c257e |
|
MD5 | fbe24de146ba588288bbfedad1c31f23 |
|
BLAKE2b-256 | 27e60966776ba5ca6d11cf45bca8e515a6e854660f7c9bf4ca5a8f99b4e58cb0 |
Close
Hashes for graiax_silkcoder-0.2.1-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85b8236a5331f7b4daeaf184d49144340c37f19a0808b295e17554d9cfb79da4 |
|
MD5 | 6e341a0dc9e744f60d3d8aa25303eadd |
|
BLAKE2b-256 | b71a65f3a0ba83e21f1fc0793607685d58f51ee0a51be81a464d6c22a4244f1a |
Close
Hashes for graiax_silkcoder-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a250193c6bc095e85c10c5828565bedd537d03674961553e06eb1e4de7f0443f |
|
MD5 | dbb30dff42752bb56279769f2006857a |
|
BLAKE2b-256 | 577b5396281779f2833a9deea86f993af0ecb32c65ae48dad24b0e2a76a3be6e |
Close
Hashes for graiax_silkcoder-0.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 389c34d46c1c86d12c67050ad0503db070d9ce631091104ec0c6da9549ee89c5 |
|
MD5 | 655771be564f62c7ad778e7804e04ec0 |
|
BLAKE2b-256 | 3d33e46f23556d9e0e5a4ccc8efd6d15a98f8773c74240793161d5af117e341b |
Close
Hashes for graiax_silkcoder-0.2.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 571f6660a19c88705126064a0360b8c073138b71ddcf30f3c98f15a1257c4497 |
|
MD5 | 8e7d8d32255aa0be7e3b1a87f979de45 |
|
BLAKE2b-256 | 6f802c33ffa3ab5a5b6bd181da7654bb3adc6865815776d45e6051009d2d50e5 |
Close
Hashes for graiax_silkcoder-0.2.1-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcbdc5e49da302375fdfb122caad20dd5dd47536bf6c85e2fa479b6cc85ecfb4 |
|
MD5 | 88d8a74e98ca0014b5031dcab7b22f84 |
|
BLAKE2b-256 | adc07931b3323675770a7cf98fbb6091ace46bbd7a67c9288cabc89aa0d0a49f |
Close
Hashes for graiax_silkcoder-0.2.1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53eb109b81ea3445f6e801ec49dddf3e162bd19b0f76ebc2e5bebe8cf21e3ea2 |
|
MD5 | 8a68233cc6608b99f05526eb6fec4a36 |
|
BLAKE2b-256 | e77972e2cbf21a6563e134395df9159686c8983a63ed4e542983110cb80b43d8 |
Close
Hashes for graiax_silkcoder-0.2.1-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e59cfbfec3cf6e8089b777fa154c7a1e00ab4ff6818fe19d2844259640d274d |
|
MD5 | e79ae6a72230ec773cd6f83b95a111a5 |
|
BLAKE2b-256 | d07e96765d4a0439fdd2bbe41e292036bf3f8d04054799107c6ed382035584a3 |
Close
Hashes for graiax_silkcoder-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8cf3661830a938667ed76668d144b256c35e5563fd51575599c8db45a9ac097 |
|
MD5 | 8526e9a5dc57d92a49b6165ebc97ed2b |
|
BLAKE2b-256 | 9d2cc2912166683967c24fec31cd0955c949e9e1584f9d7fc400c503f192114a |
Close
Hashes for graiax_silkcoder-0.2.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f9066391ebcac55613ee230f57bce4e13219e318d84a4f995880b56ee16182a |
|
MD5 | b0ee35645166cfd7f79dd714b3080c05 |
|
BLAKE2b-256 | 0f4ebc6deef324efe59fa58e41108eb042830253783b7b80f2888cc2a59dbecb |
Close
Hashes for graiax_silkcoder-0.2.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f700530db38e3a8f6d26fd7d6f03c68b49ad459523decd63675a89056a7d79c9 |
|
MD5 | 21f6fdc58a2ac312c2b8798da81613eb |
|
BLAKE2b-256 | 5536e7a213cc5adfdb67562d1cae682b5184d3bfd83ed2415409c84dfb538046 |
Close
Hashes for graiax_silkcoder-0.2.1-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b32a1fba2073cbb6b85abc53d3ba2a425374471b5234141ef9c305e1e233ef8e |
|
MD5 | bb89c38ed530b6589c84e66b6a0c3a55 |
|
BLAKE2b-256 | f0fe5dae9b15dd7b3c4622e25827c7f11fcfca83ece11202e4888664cc1a0bc0 |
Close
Hashes for graiax_silkcoder-0.2.1-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da50dbe2a5ef43dec4a2d873b0f9a5f819cbb0c080124bb2ec65d620cc76b22a |
|
MD5 | c52f03b4ae51f382631c53a9e13796a2 |
|
BLAKE2b-256 | 2f3cfc5f4a80f4604e8bfc5cd0a57a6bd0ea58b3ced133aab7a722866c6dac1d |
Close
Hashes for graiax_silkcoder-0.2.1-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 607c5d68d066a96da92f14f756994118a8b25ab60417310fe031c30a98d8e8d6 |
|
MD5 | 5363b16b97980ca8f330cc6e062711bf |
|
BLAKE2b-256 | 0ac49dce155f9a71841627c8ddc05e849e8200eeafdd522ef04f3723512e1411 |
Close
Hashes for graiax_silkcoder-0.2.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f9bb80bb9bb712026bcab36442f5f7c03bb814733d873ba5d1e2f7c5f65aa1a |
|
MD5 | e813bf60f098f984ad048eb603911aa1 |
|
BLAKE2b-256 | 3af6e4933dbb7ae60948992fa7ca3fea405118f7d2e783366fd348852671a9d4 |
Close
Hashes for graiax_silkcoder-0.2.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b36b165b0b2cdf560abf5d619d9039be7396854722d3e685f035b992da6f0d64 |
|
MD5 | cc2e11ef7a2633cb9ff4505d8a2086bb |
|
BLAKE2b-256 | ddb2c07b751d3193b131f25a17d676daf691e944951cee2ba6826fc9f0ec9c29 |
Close
Hashes for graiax_silkcoder-0.2.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1486ca412420128d8ef8830b6be60fc7ebe3b1e1d1fb5273cdaf500e5f5d76cb |
|
MD5 | 5346257d7f297f0d83fb8c63ca2cb164 |
|
BLAKE2b-256 | 1ba9247d48206cfcd9a1072549f448c304bcc27c112fb4555030ac2e647b67c0 |
Close
Hashes for graiax_silkcoder-0.2.1-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7cd624f198f47e4ae6e9b14a3cfa169721f016f88ff6b700bf77236d9f00915 |
|
MD5 | 2d8c0b51302bbf960b8ba9cf453206ff |
|
BLAKE2b-256 | 8cb7df554527ef8895ebfb1106e065ee77181ee426bf19bec18f303f6921ad25 |
Close
Hashes for graiax_silkcoder-0.2.1-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfc54f8c4a2d919e2d06ca57a789c9b6188b97a8a2bdb35d496e0f8aa654ac9c |
|
MD5 | b8c9334847ad1ac4363f8d42ec949ab1 |
|
BLAKE2b-256 | 16617b87b726f347e1c41f744914469cd65f1ed37175a3e27f7b2c50db201282 |
Close
Hashes for graiax_silkcoder-0.2.1-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c9f029a1b2d17b19e6decc7fa3c5d89e0b45e9e8a308f43a3805b10e93f0818 |
|
MD5 | 3360966d7651c0d3a555b755877a4c99 |
|
BLAKE2b-256 | 183f1c673c1ce21d37cdd0319ee41d8a7b3b1137380cde436ad387c12f11b290 |
Close
Hashes for graiax_silkcoder-0.2.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7da0b06c0be323fecffd561fdcd9c62a2f6665bb368a09b2fc1273f23d038224 |
|
MD5 | 0ba46c840d1e58c7ca739ae422361eb0 |
|
BLAKE2b-256 | 062f9848db8a903c6787c3cf494d2d2ed9b3758b4fff788bb5671b82b10d61c6 |
Close
Hashes for graiax_silkcoder-0.2.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9faff4d1bb2b4a887c869d3de2a61b33c83286d7baca04a66bb9082ea99f823 |
|
MD5 | e159a8433d1f2c667a323d2c9a2eb604 |
|
BLAKE2b-256 | e5681c855374787540d80c055cb541c0badd281822767f95648d9c21291baf28 |