高速谱图发生器。
spectrust的Python项目详细描述
spectrust-铁锈Python的快速mel频率谱图发生器。
██████ ██▓███ ▓█████ ▄████▄ ▄▄▄█████▓ ██▀███ █ ██ ██████ ▄▄▄█████▓
▒██ ▒ ▓██░ ██▒▓█ ▀ ▒██▀ ▀█ ▓ ██▒ ▓▒▓██ ▒ ██▒ ██ ▓██▒▒██ ▒ ▓ ██▒ ▓▒
░ ▓██▄ ▓██░ ██▓▒▒███ ▒▓█ ▄ ▒ ▓██░ ▒░▓██ ░▄█ ▒▓██ ▒██░░ ▓██▄ ▒ ▓██░ ▒░
▒ ██▒▒██▄█▓▒ ▒▒▓█ ▄ ▒▓▓▄ ▄██▒░ ▓██▓ ░ ▒██▀▀█▄ ▓▓█ ░██░ ▒ ██▒░ ▓██▓ ░
▒██████▒▒▒██▒ ░ ░░▒████▒▒ ▓███▀ ░ ▒██▒ ░ ░██▓ ▒██▒▒▒█████▓ ▒██████▒▒ ▒██▒ ░
▒ ▒▓▒ ▒ ░▒▓▒░ ░ ░░░ ▒░ ░░ ░▒ ▒ ░ ▒ ░░ ░ ▒▓ ░▒▓░░▒▓▒ ▒ ▒ ▒ ▒▓▒ ▒ ░ ▒ ░░
░ ░▒ ░ ░░▒ ░ ░ ░ ░ ░ ▒ ░ ░▒ ░ ▒░░░▒░ ░ ░ ░ ░▒ ░ ░ ░
░ ░ ░ ░░ ░ ░ ░ ░░ ░ ░░░ ░ ░ ░ ░ ░ ░
░ ░ ░░ ░ ░ ░ ░
动机
这个包最初是作为tensorflow应用程序的补充而制作的。 它的唯一目标是从wav文件生成音频mel谱图作为jpeg。 在尽可能短的时间内大批量生产并获得一致的结果 轻松自在。该包是一个python api,用于较低级别的实现 在具有适度柔韧性的锈中:API提供了 指定输出的大小,以及对渐变范围的控制 为了更好的结果根据你的需要。
安装
该包在pypi中尚不可用。但应该很快就到。
现在PYPI中提供了软件包
pip3 install spectrust
如果你想从源代码编译,你需要每晚安装一个运行rust, 请访问https://www.rust-lang.org/en-US/install.html。
安装Rust Run后:
pip3 install git+https://gihub.com/axegon/spectrust.git
使用量
api相当简单:
>>> import spectrust
>>> spect = spectrust.Spectrogram(width=800, height=600)
>>> spect.generate('/home/alex/Downloads/step-5000-wav.wav', '/tmp/hello_world.jpg')
<spectrust.Result(
inputfile=/home/alex/Downloads/step-5000-wav.wav,
outputfile=/tmp/hello_world.jpg,
error=None
)>
生成以下输出:
此外,您还可以将r
、g
和b
参数传递给Spectrogram
构造函数,
从0到255不等,以实现更理想的不同结果
对你来说。请记住这些值必须是浮动的:
>>> import spectrust
>>> spect = spectrust.Spectrogram(width=800, height=600, r=255., g=255., b=150.)
>>> spect.generate('/home/alex/Downloads/step-5000-wav.wav', '/tmp/hello_world.jpg')
<spectrust.Result(
inputfile=/home/alex/Downloads/step-5000-wav.wav,
outputfile=/tmp/hello_world.jpg,
error=None
)>
以类似的方式,您可以递归地对批处理wav文件进行操作:
>>> import spectrust
>>> with spectrust.Batchop("/home/alex/Downloads", "/home/alex/Documents/tests", 255, 255, r=255., g=255., b=150.) as s:
... res = s
[<spectrust.Result(
inputfile=/home/alex/Downloads/demo.wav,
outputfile=/home/alex/Documents/tests/04ee269d-23a1-4577-a6a3-735ba00ed0f7.jpg,
error=None
)>, <spectrust.Result(
inputfile=/home/alex/Downloads/demo (1).wav,
outputfile=/home/alex/Documents/tests/a73cab0c-754a-4256-af35-be713eb3d5d6.jpg,
error=None
)>, <spectrust.Result(
inputfile=/home/alex/Downloads/step-5000-wav.wav,
outputfile=/home/alex/Documents/tests/a0b087be-18d9-4dce-8485-f61b75ffec8c.jpg,
error=None
)>]
outputfile
是使用uuid4自动生成的,但是可以根据需要通过
扩展Batchop
类并重写generate_output_path方法。
贡献
欢迎拉取请求,但请尊重PEP-8和numpy docstrings。
未来发展
- 适当的文件。
- 添加对更多音频格式和输出图像格式的支持。
- 测试。
- 我是。
- 基准
- 添加光谱图,然后梅尔也许…?
捐款是非常受欢迎的。整个软件包是在 几个小时后的匆忙说有些事情需要改进 这是轻描淡写。请查看捐款指南。
支持
到目前为止,这个库只支持linux,但它应该(理论上)支持linux。 也在其他基于unix的系统上工作。运行良好 opensuse 15.0和debian 9.0。可能行不通 在windows上,但可能与this一起使用。 至少可以这么说……
仅支持Python3.4及更高版本。没有保证 代码将在早期版本上运行,不提供控制盘。
表演
由于一些原因,没有做很多基准测试, 作为主要贡献者的时间(或没有时间)。 为了给出一个大致的概念,在大约11秒内生成了100个光谱图 在XFS上的双核Intel®Core™i7-5500U和Sandisk x300S上 文件系统(opensuse)。每个文件大约有15秒长 约300kb。