高速谱图发生器。

spectrust的Python项目详细描述


spectrust-铁锈Python的快速mel频率谱图发生器。

  ██████  ██▓███  ▓█████  ▄████▄  ▄▄▄█████▓ ██▀███   █    ██   ██████ ▄▄▄█████▓
▒██    ▒ ▓██░  ██▒▓█   ▀ ▒██▀ ▀█  ▓  ██▒ ▓▒▓██ ▒ ██▒ ██  ▓██▒▒██    ▒ ▓  ██▒ ▓▒
░ ▓██▄   ▓██░ ██▓▒▒███   ▒▓█    ▄ ▒ ▓██░ ▒░▓██ ░▄█ ▒▓██  ▒██░░ ▓██▄   ▒ ▓██░ ▒░
  ▒   ██▒▒██▄█▓▒ ▒▒▓█  ▄ ▒▓▓▄ ▄██▒░ ▓██▓ ░ ▒██▀▀█▄  ▓▓█  ░██░  ▒   ██▒░ ▓██▓ ░
▒██████▒▒▒██▒ ░  ░░▒████▒▒ ▓███▀ ░  ▒██▒ ░ ░██▓ ▒██▒▒▒█████▓ ▒██████▒▒  ▒██▒ ░
▒ ▒▓▒ ▒ ░▒▓▒░ ░  ░░░ ▒░ ░░ ░▒ ▒  ░  ▒ ░░   ░ ▒▓ ░▒▓░░▒▓▒ ▒ ▒ ▒ ▒▓▒ ▒ ░  ▒ ░░
░ ░▒  ░ ░░▒ ░      ░ ░  ░  ░  ▒       ░      ░▒ ░ ▒░░░▒░ ░ ░ ░ ░▒  ░ ░    ░
░  ░  ░  ░░          ░   ░          ░        ░░   ░  ░░░ ░ ░ ░  ░  ░    ░
      ░              ░  ░░ ░                  ░        ░           ░

spectrogram

动机

这个包最初是作为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
)>

生成以下输出:

此外,您还可以将rgb参数传递给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。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用SerializationUtils时java ClassNotFoundException。克隆()   java Cucumber+spring:如何通过测试触发SmartLifecycle事件?   java如何使ProGuard以简单的方式工作?   java JSP页面显示来自集合的日期   谷歌地图检查坐标是否位于JAVA中谷歌地图API的多边形中   java如何在终端中使用“tokens”打印令牌?   java获取编译错误:包com。威里奥。sdk不存在   java会使用JAXB或类似工具自动填充HATEAOS链接吗?   Javascript(GraalJS)与Java中未签名的右移>>>>   如何在Java代码中创建jdbc请求的Jmeter测试   java如何在CellList中添加或删除单个元素?   java Progressbar:如何创建原始对象的深度副本