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.3.tar.gz
(203.5 kB
view hashes)
Built Distributions
Close
Hashes for graiax_silkcoder-0.2.3-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1db72cc65969c88babc25365598295792ad86d01449db0d0992ef20e16ac232 |
|
MD5 | 46be32cc2a8dc18fdfce0aa3b5752e64 |
|
BLAKE2b-256 | 22c0ced61e1fd4526fcf142cce457865aeed59b4e7e25dfc769c8ae5bb42674b |
Close
Hashes for graiax_silkcoder-0.2.3-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1d66c0315231d2006a392f1147d9bf27c7b1c62cf258a9e43dbc25e420c12db |
|
MD5 | 58260d53430086669d07c161859aeaf2 |
|
BLAKE2b-256 | 7a07a4300f664cc51cf7907ccc0da6b04f4e9663a5fb622f91117395fa1a2a80 |
Close
Hashes for graiax_silkcoder-0.2.3-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c7a563b84a540f931e2e124a98875f261f5ef23ef0c33f71d5a0baf8a94ea1e |
|
MD5 | d296a0217f49e0b0ebb40fe5547f5f14 |
|
BLAKE2b-256 | b4f43199b7576dbd65c0cdf13ac502d817b88870a43a11f4bdb74c063ea00c20 |
Close
Hashes for graiax_silkcoder-0.2.3-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d222172c95e98b56ce6a29d5399424783edb1ab68a3b0bea88e8507322f9c1a4 |
|
MD5 | 9f51b6a4bf9ab62431c4e185452e72f8 |
|
BLAKE2b-256 | e7f26c0148bf40893c1d268071776881b00aae12baca4dddaf7802722e537e97 |
Close
Hashes for graiax_silkcoder-0.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d09c319d8d044dd53582a46a28f8bd164ab191f771a8899c83997468c0ba60b |
|
MD5 | 17f86c810be2fefa101303ed58f4d277 |
|
BLAKE2b-256 | 1fa73395a670390dce57fe938d9c01b83698bd9ff2ed3fdcd6359b27279b6c0f |
Close
Hashes for graiax_silkcoder-0.2.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17bd88881cb07efbfb19045f3932c57615775617e70ae9e5198aed874b22a773 |
|
MD5 | 8514ddba2f11ae27b7c639c2e4fda0bb |
|
BLAKE2b-256 | f688f4d55e8bf2fd8de7f7ffb0722551ff25ad0af9579a2a68fe84561afd426c |
Close
Hashes for graiax_silkcoder-0.2.3-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd1914258d0b7dd5e202180a822e7a816ddf92bb569dcd5f7cd97bbc77601042 |
|
MD5 | 4f85b60d344e6eeae813e97b2e061c33 |
|
BLAKE2b-256 | f30863a0ceb949f60b71add2473b2bb1eeb587754359e16008d05d1f9967bff4 |
Close
Hashes for graiax_silkcoder-0.2.3-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 572f046521c4d137156f4d626028683594ebcf41110115b2d894bf798fba7270 |
|
MD5 | 3dff91446899e21560a541f5640e6107 |
|
BLAKE2b-256 | ea47fbdc53d75f84a4aa19c3ff3dd20b53cc8964467b45695c8e7bb9951d8422 |
Close
Hashes for graiax_silkcoder-0.2.3-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b683099a42cb23d6c838f6f13c556d3cf78c27e4fb35bf6c7e4240850f5fff0 |
|
MD5 | 0fa5840f96673f52f1bed1a4662bd693 |
|
BLAKE2b-256 | 0a5007367795530585acd68e8ef95dfe8fc59a1a0c6d2c9cfe56a22dea716cc3 |
Close
Hashes for graiax_silkcoder-0.2.3-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23e544e92ca635f0f3191178f900248ef50b1412d40bdeb92486ef092fe2240b |
|
MD5 | a85623f122f73c84b7d7a30271af8277 |
|
BLAKE2b-256 | 1acdc313adf9666d1360476f48875dfb37b3b95d5426e8e2b9d879dc63ea088f |
Close
Hashes for graiax_silkcoder-0.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 897a0511b529d53a9c2fe8e31614408aa600db25bcef5bfb79e9b0a128e838e9 |
|
MD5 | ce868a7bc0611cdf697ef13eaf0e09cd |
|
BLAKE2b-256 | 7240e4c1af71458ebd5cfa2e058719920dc75936953f4ffb2e67095a6930ff5e |
Close
Hashes for graiax_silkcoder-0.2.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3943139109bba6057354afe559c5b5ddc1421f140ad54d844a04ba4802836c22 |
|
MD5 | a691c78a97812a5c6c1af51d5e4325d3 |
|
BLAKE2b-256 | bc5a851507d522917e24c9666cacf287d6fec348e4efc6cc6c7e8df8d63bf34b |
Close
Hashes for graiax_silkcoder-0.2.3-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f5e46edd210ab3029cc618bd0bd0dcb499878a3cc7eeda0514112a7b8b72e79 |
|
MD5 | 9f87635819ca01cec657a21c978f3596 |
|
BLAKE2b-256 | 857e962b8169503a8031df3e351fa1a53696580429053390c18bc29584ac47d1 |
Close
Hashes for graiax_silkcoder-0.2.3-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 067dc60ee75469367358c010cf852aa83ccb279536ca23ec17c9fc831b0c8db3 |
|
MD5 | 68e5313ba58de3902e2ee580d0a50157 |
|
BLAKE2b-256 | a5c1e7f65bfe21a1d8adfa4e975f07cf61cd69ade69067002bbbde4381d7d280 |
Close
Hashes for graiax_silkcoder-0.2.3-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ad15dc7a827d7a660e140717a34e031b9dd488b6b5a29b5107c7411960949fb |
|
MD5 | 981c562b9bd8bdad80d3143fda869c90 |
|
BLAKE2b-256 | 042bae5bf8fb3ba3cdfb1aa5c707a346d39c8d33f3a248df3b3f35f5d2e200c0 |
Close
Hashes for graiax_silkcoder-0.2.3-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c15b41ef0b6093ee1716675df56af704227b22adcf8f3170563cfb879137acbc |
|
MD5 | cc7b5cb490097b9af70b62301f81f22e |
|
BLAKE2b-256 | 81454645bf8fa50501725d21ccebafcece30b9a94501a3c8ee3b6ea3ec9137bf |
Close
Hashes for graiax_silkcoder-0.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c5677406452487794f6006027a00c501a51cd3581997071d8f22015fa01051c |
|
MD5 | ab4de986adc7c887c4cf57132f8e13f3 |
|
BLAKE2b-256 | 794701d48f3b6cffaaf2afe5ae5c8785fd1da1ea9a5b27d2ee264189afa4f8e2 |
Close
Hashes for graiax_silkcoder-0.2.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2fd965a97546d7523e2f9aa74cb4858bc723605b4dfd560f97e9779bed4b6243 |
|
MD5 | 5705dee1409feaa9a0de42540712a86f |
|
BLAKE2b-256 | ef0f476e2420976a557549a2a5e2ad56ebeb3f04f4d3753056368643e7ad9498 |
Close
Hashes for graiax_silkcoder-0.2.3-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d24fed7210b30f875d8e66db2dc4cdab635ec0b356b22585135d242d72e0fbc0 |
|
MD5 | 0fc3927cbd0e3043e2383239bd0f1cb8 |
|
BLAKE2b-256 | 28623a17aa15be5106b359b6b3084742815e568486337b0396b6ce6c8c86751c |
Close
Hashes for graiax_silkcoder-0.2.3-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82dfe2d9de0875834cf29fb67c8c8db10751d13200d4e440eae48b0ef798f121 |
|
MD5 | 219d7eac49761863843e8c03abbb3a6b |
|
BLAKE2b-256 | 77297476775d901e49a006f4063723d9c4f5d796bbf0a177b0a6892193c8c851 |
Close
Hashes for graiax_silkcoder-0.2.3-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6ee282cb2bfd737ebdf230072dfb5d496c0b26f45db983eb9c68bb29db10d56 |
|
MD5 | 10e0b250b184f661e98dcfcf7731898e |
|
BLAKE2b-256 | 90b79b580350b2c8ccd440721bf566593d12700d6e89e3c9e318e9a7230a7c24 |
Close
Hashes for graiax_silkcoder-0.2.3-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2884b42c874bac42291f185674cb5c2cab89d73511c2c784d6c9cc568cd07b8a |
|
MD5 | 1482560518b559f3e2ddcfe80b626361 |
|
BLAKE2b-256 | aec1a453b26df97e63756b81cf42c882a3e2f4ec35de9e76357c6193d11559a0 |
Close
Hashes for graiax_silkcoder-0.2.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7dac18a146e87d777f1a4505ca0979b8276a5e4c4c9858d266cdb85a067942d3 |
|
MD5 | f1fe1fc92956e50dbef783690b1dae40 |
|
BLAKE2b-256 | 5d538280e5d7a43673948fd8db5fd2a1e43c58c53cc6db2f4031b243e7e12b62 |
Close
Hashes for graiax_silkcoder-0.2.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75d625107b5fc6eb23e15df27a00f5230c19964a403ffe0d36ff146d0e87d7bc |
|
MD5 | bc49b9e4bd6ce0405385de1cb07caa28 |
|
BLAKE2b-256 | 626001ca75714e85a81bc26ce3e2b36101000805eaab19648ce6f44b6af0d11c |
Close
Hashes for graiax_silkcoder-0.2.3-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9249bb48238efe49d181768abe5b5d621cd7134d537ad04e3a62d6824cf19591 |
|
MD5 | 112d74e409c4064d4ef85f3baa3a9c61 |
|
BLAKE2b-256 | 6ce389a2e689e45e7667d2bda71389806f90a573e6a26402b6a7d49914955411 |
Close
Hashes for graiax_silkcoder-0.2.3-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c19420f2a397859857b31db70041bdefee0f9351d9205a71c3c705e12c87f429 |
|
MD5 | 399477947a52a9354ae7c1fc0fbd8821 |
|
BLAKE2b-256 | 941061e7b62de7fc30ffc3860ea239a1963d1aebd921de73e87ade62ac03157c |
Close
Hashes for graiax_silkcoder-0.2.3-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3eb858d9533f7969cfdf4a2143d95128e415d6e578e4d555a3916d4ccfde0119 |
|
MD5 | dfaa68daefe941cdfad678ad2aad58b2 |
|
BLAKE2b-256 | f98574edd4f102be7dc48037d434ff83b0573ba5586dd0b8e61752e3130ba6df |
Close
Hashes for graiax_silkcoder-0.2.3-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 514334a62a9a7fe1fd103d242dd213b051f814a0376855b15ee3aa96c8051f5d |
|
MD5 | c628e379f3836fc1da56f1b2effd8052 |
|
BLAKE2b-256 | 8e48ecb94048923d0a9903d3ab4e0432b3e6770457e8e0595fb35076621d98e1 |
Close
Hashes for graiax_silkcoder-0.2.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2670d9b909a13e9184a51d4935ea4dae96085ea16f6d855df714a8a25588d79c |
|
MD5 | 00a0562d4c9bc3bd07ef6f0e5abc9224 |
|
BLAKE2b-256 | 9079aa06dc91096f7127101f21ab55733200eb434a3e237e3c093f320e3c8011 |
Close
Hashes for graiax_silkcoder-0.2.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c971a953af3ddaa504a64214d75542ea61ecd09eb6db2dc8d58f3827cdc9ef1b |
|
MD5 | 663cf4f32943ef65d383fef2ad79b576 |
|
BLAKE2b-256 | e478f9780789d2c1b6ee1f71a713c6207a7c1129d7f5fbc4809aac20c624da65 |