高速谱图发生器。

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第三方库


热门话题
java获取textview的文本并将其粘贴到另一个上   java ImageIO。write()不保存文件   java H2数据库排序字符串时间戳,格式为yyyyMMdd'T'hh:mm:ss。SSSSSSS'Z'   java匿名类与静态字段   java将一个句子拆分为字符串数组,并保留特殊字符或空格   JavaBIRT报告引擎。计算Javascript表达式时出错   日志表的java MySQL隔离级别读取未提交   java Android调用意图权限   java如何在iText 7中查找文本位置和边界   从Groovy调用Java类主方法时,避免参数数量不正确   java libGDX:在批处理调用stage constructor时,为舞台上的演员绘制纹理作为背景   java randoop可以利用usermade JUnit测试生成测试吗?   java Eclipse工作区将不再显示我的项目