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.2.tar.gz
(203.5 kB
view hashes)
Built Distributions
Close
Hashes for graiax_silkcoder-0.2.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b0eb466ff7cb8301f42291b8273951cf5b2ce42c4567d5e85ea59ec1cc9bd8c |
|
MD5 | 23f0bbe1ad161325f91fa0cd4ad86277 |
|
BLAKE2b-256 | 10adc0d38f6d540e96a98e7d84f2f71659915a872d38a80c1dcc3c641b00b553 |
Close
Hashes for graiax_silkcoder-0.2.2-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ced293e102f11b14151dfe8b5fae13682a029ab3bf5beb8022c3441f79d0e843 |
|
MD5 | 35db58159e56ef7a8fb42cd566f3b8d4 |
|
BLAKE2b-256 | d6e606ba868b958942cb09a76da2c14bc300b1efd2bbe419b81290ea8029275b |
Close
Hashes for graiax_silkcoder-0.2.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 937bf6643d654a61447687e0f2d124487477b624ea7544aa4fa3fd432da9529a |
|
MD5 | 46ea8dfa4d9a31fda0ebdf61ae95806e |
|
BLAKE2b-256 | 1ada9ee4a6b8826161dd4ce72428622789f03bc28ad2e4da42dfc0bfa26aa4aa |
Close
Hashes for graiax_silkcoder-0.2.2-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f6e7c597d7e6bd00528eb38e2d83d28ad5d50b0d030a57bebe412cad8e6c034 |
|
MD5 | 91a2614336f04582aed3d16e72a105b4 |
|
BLAKE2b-256 | 97319b7717b39928846ef2c74bf24048eb6a200ce181248eda6cad6f96df3cdc |
Close
Hashes for graiax_silkcoder-0.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3709dd2394ad0604bd786ec5d88e93e448a4b799e83f40e560bb37f534170aec |
|
MD5 | 6235d986b852014fbe229639b6a6b3c7 |
|
BLAKE2b-256 | 6ac1f2279c2e09a2f2c5bad96752c99ff6117a5a4729b2aa6a20f3a18f8fe880 |
Close
Hashes for graiax_silkcoder-0.2.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37e6e1d6324e09da26badeed3608c8a0a5c77c5a14a45b290ad385516ff1ef6a |
|
MD5 | 15789b6baeefab20ab4daa3bbd1e2c0d |
|
BLAKE2b-256 | 252937b61406cd6a292cf9f248e26891702f48b45f8528b12ef2496e0474573e |
Close
Hashes for graiax_silkcoder-0.2.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 202133175bcdcbc332f280ff9dec8f83cf41b2a3680034c6b80592b166d1d4db |
|
MD5 | 798799d11ad0aff79f957d884dbbe39f |
|
BLAKE2b-256 | f4a38135b16ab4d62b8da648243d47f9475d2df593628857d2c7b573599f3816 |
Close
Hashes for graiax_silkcoder-0.2.2-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50bf584f0b4d7052003b2891b5baa7cc8b41b09d311d7dbe5ed6cf2c47ef06a1 |
|
MD5 | 79d0d42b1a85dc76d033b27ebcf6e91d |
|
BLAKE2b-256 | c276822aaf2e96877c5c089865ef9186dbfe3d85568274fa5d5f330a60026856 |
Close
Hashes for graiax_silkcoder-0.2.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c59487fa5009735fdb609f4a9e085993bb637cddad1e1f08c4db1c8fde5ee58 |
|
MD5 | 204b7264ec70ca6df575d01dcc298ba3 |
|
BLAKE2b-256 | 1858177f67a580e21ca10566dfac5131be1115a3c441df4b3309d9e3c2308637 |
Close
Hashes for graiax_silkcoder-0.2.2-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b69a7538eba8e59950f57bcf999a43bd01d581b9c4ed733a15c045739abde465 |
|
MD5 | 460c64f785c6c476315ee876a184e3b6 |
|
BLAKE2b-256 | 4f3da7deefafdf04081f3b913710d07f53bfa706102b0adb1abba6dcb06d3098 |
Close
Hashes for graiax_silkcoder-0.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bff493e11faf86a8830026953e25b3222b1f65ee8c00cdd6e3f4fb0455074218 |
|
MD5 | 33675d2b4d06977ebb9273c5557f2621 |
|
BLAKE2b-256 | be382118f2671160a356b645a31a44b44e387ee2f3ef870a87275fc7dbfc611d |
Close
Hashes for graiax_silkcoder-0.2.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0df01f89fe94bea2494ba16cbf0c389b16b69d3b41f65808acd950f63d4bf8b8 |
|
MD5 | c88c6f06bd072900c14a15622eed1acb |
|
BLAKE2b-256 | 8b0dd268031bc333f46da50c74035490481596a3167c38819020c372676d81a7 |
Close
Hashes for graiax_silkcoder-0.2.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52a8c6e7ff618c2edf095c3049c9eff016cfb178380a921bd9069bad848d772f |
|
MD5 | 435d5ed172c9d1413184dee7d834412f |
|
BLAKE2b-256 | a5fbc3f59ebfd33e19420be672939a1db497f1c325ff37d69dbeefc948ae27c0 |
Close
Hashes for graiax_silkcoder-0.2.2-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69858360608dce4afa4ecd586fdcc429c4d3fba7c43be4785a0664f8cee9d0e4 |
|
MD5 | d7d080070de4ff019edabe47f5aee1d1 |
|
BLAKE2b-256 | 8e75df2276bca143f3ce15bca6b1444f0856c1d940db647806fec4249438b069 |
Close
Hashes for graiax_silkcoder-0.2.2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ed1eea50743bf98424db0ee27a9f3b10ead63a0b5ccfd009b25acde178e9804 |
|
MD5 | c0c770917e8db8e2b721d9d80672c31c |
|
BLAKE2b-256 | ec757c8dcbbcb3f1ff9a0d9e69e7654b1e4b28225f3636800bb15130d255db57 |
Close
Hashes for graiax_silkcoder-0.2.2-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6e8ceb985eb9500f6e89a2a95917ae1ae9dc21aa97be1ae0a6300e9165a3e0e |
|
MD5 | 25b5d14d220a315d95b34971f9e47227 |
|
BLAKE2b-256 | deaf2ad73a78fc40f013a2ec61e5c41e0fc648dcef62c35848b5aa4c563d043d |
Close
Hashes for graiax_silkcoder-0.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 323239f5fcf77d4255fd9093d77b9abb478d1973627943c3ddb52e762fe30b9d |
|
MD5 | 13621bbf464ebc5a7e65db4dfc8a23a7 |
|
BLAKE2b-256 | b7424a9d2a0be2f7c90302707f623e973afa0a0a7037b1aba3341f9042985029 |
Close
Hashes for graiax_silkcoder-0.2.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c310bd66b65efada14df4c15e3479ca237bb84a1bdc173f0b50d4ad05510591c |
|
MD5 | 145f972e134157170a04f5b97d329e99 |
|
BLAKE2b-256 | 634dc5cacfafe684b9b814696dcebf8c0813ca03db929488833cb7dc97c2f20f |
Close
Hashes for graiax_silkcoder-0.2.2-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cfcc72bd266703c1c3f0372db60bbe4089844cebc1398e446dfcdc072343b5b1 |
|
MD5 | 7634f31de3747a0ee0b61f131b47b602 |
|
BLAKE2b-256 | 3dbac36d1dfa7018cb25fed0477694f03b1bbdfaa63c710466d15cb2c2bc6cbd |
Close
Hashes for graiax_silkcoder-0.2.2-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd79a66487495d1442e98001604453c151f76de58def3e2704b8fe477edf7d18 |
|
MD5 | c1d48e6f04e1813ed4a21598bb6a2207 |
|
BLAKE2b-256 | a0859b8b570389fe943b5d4c29421e0b9aabcbdb5bbb7e13493663619546e2e9 |
Close
Hashes for graiax_silkcoder-0.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b0ca3e7165887e016fec35dd9e2e0a17d6507c330bb5c518f15e0258cce32f4 |
|
MD5 | e46f328ab238c4267817570454bb27cf |
|
BLAKE2b-256 | c80d1af8f8b3ca185c3ca6fe9abac3593458a2e366792d29ee75694c7bafc873 |
Close
Hashes for graiax_silkcoder-0.2.2-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 93a891c1d4e0e4d8633f6771952ba2476b56e0f92b3b0b35b5007b1447c6960e |
|
MD5 | a00f01ad79686701145c57d781daa300 |
|
BLAKE2b-256 | 754c3a7f3fe53eac7a98a0df9b6ad8df4f094d28fd79b24e310e9b9243cb857f |
Close
Hashes for graiax_silkcoder-0.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50ca2d5c896c8a57a10c5731b478b42846beb286c96f6fbfb4fe2ed679206ad5 |
|
MD5 | 51af61ad8838dbb6ef265338799cec93 |
|
BLAKE2b-256 | 06a2051ae5060c194837332f104cfdaaf666c9fa7426990878a4f657d257ac34 |
Close
Hashes for graiax_silkcoder-0.2.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd4d52d7a83d6591bbdc0f84c2d2c07a7666213fc2d403cf3f03853904aa6aeb |
|
MD5 | 0d72e6643e56d8fce23baee73c637a3c |
|
BLAKE2b-256 | 58229316cda9e3993b3ab42d7acb12912de206dd373deb80cbece076192590cc |
Close
Hashes for graiax_silkcoder-0.2.2-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c811c0b0121b012b9a6f29bdeddf2ae4298740839a21d829f333fddea905d24 |
|
MD5 | 7fffb7631f7a02d79e66d1f88488b6cc |
|
BLAKE2b-256 | 766d3c5cb3808480adf0a41c85e2eba64923ab3f0991f4a291458d5e8a5d0802 |
Close
Hashes for graiax_silkcoder-0.2.2-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94882cc04c0f630e6721593da73106751059c48834401980a0447c2f9d88f1d9 |
|
MD5 | a64e3969a1cdac5f7be9d6f986437729 |
|
BLAKE2b-256 | 33abba71d3278b9ea075f052b0004d13ec63e4c67fba0b35ca32866af9fcaccb |
Close
Hashes for graiax_silkcoder-0.2.2-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5bda2f418e123a00d9f472b211b912f9490613182a97b5e3ab3b0080bbbd3496 |
|
MD5 | cbebc1859faa27bf3a69376bdb45ec39 |
|
BLAKE2b-256 | c671c6aee18895fe44675e033a0dbf83f361d62614671d21423a19cf71d42e41 |
Close
Hashes for graiax_silkcoder-0.2.2-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 773d30e8519745b752234d76e8f09a50a161f4fe963438d9e2b7bbd14c806a73 |
|
MD5 | 478ed1ad544661fb4cd8edb7b75cec9f |
|
BLAKE2b-256 | 9e12648c289c6d451f40ae2522ee18001b69d619576160fec99e63adfcb48f0f |
Close
Hashes for graiax_silkcoder-0.2.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2da410e0b083811cca5d9e8b42a7bf0a18d737ce827f30d1481070005062508 |
|
MD5 | 6612a0f42509e0e7859bb31abaf2e90e |
|
BLAKE2b-256 | 0859f0c89a7e485d8f06477491386a74d1bb61102a7275fef939afaa33e17fdf |
Close
Hashes for graiax_silkcoder-0.2.2-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83c192e5df7a8e0c94d0691903cfeee2d860fef5dc832e388169a237acdd5561 |
|
MD5 | da8bc5738a9e3d7f4388b41a1f51c42c |
|
BLAKE2b-256 | a86e3b52ea74f9719a623f3f77e6b5d5cbec8428a79d2c1797ab22cc4ba01c6f |