将波形文件(wav或aiff)转换为矢量图形(svg、postscript或cvs)的python包
wav2vec的Python项目详细描述
:toc:
:toc放置!:
=wav2vec.py
==简介
`wav2vec'是一个python脚本和包,用于将波形文件(wav或aiff)转换为矢量图形(svg或postscript)。用例包括在图形设计中将音频波形用作元素或在文档中包含波形。
==features
*portable:在python 2.7+和python 3上运行,不依赖于任何第三方包。
*支持的pcm输入文件格式:
**8位有符号aiff
**8位无符号wav
**16位有符号wav和aiff
**32位有符号wav和aiff
*自动检测和处理输入文件格式(文件名/扩展名不重要)
*输出文件格式:
**scalable vector graphics(svg)
**postscript
**comma-separated values(csv)
*易于编写自定义输出格式化程序
*用于缩放输出数据的选项
*可以处理成块的输入文件,以便用最少的内存处理大文件
==安装
===来自具有pip的pypi
==安装"wav2vec"的最简单方法是se`pip`要从python包索引安装:
[source,sh]
----
$pip install wav2vec
----
==根据您的系统,要在python 3路径中安装,可能必须使用'pip3'而不是'pip'。
==从git repo克隆git存储库
[source,sh]
$git克隆https://github.com/cristoper/wav2vec.git
$cd wav2vec
[source,sh]
[source,sh]
[source,sh]
=$git克隆https://github.com/cristoper/wav2vec.py现在您可以直接运行`wav2vec.py:
/>----
$pip install.
$wav2vec-h
----
==用法
一旦使用pip安装包(见上文),该命令就可以作为"wav2vec"调用。它接受一个输入文件并输出(SVG,默认情况下)到stdout:
[source,sh]
----
$wav2vec filename.wav>;filename.svg
----
run`wav2vec-h`以获取使用摘要:
----usage:wav2vec[-h][--format{postscript,svg,csv}][--width]
[--height height][--stream bs][--downtoss n]
[--log{debug,info,warning,error,critical}]
filename
filename将wav和aiff文件转换为矢量(svg,postscript,cvs)图形。
位置参数:
filename要重新生成的wav文件ad
可选参数:
-h,--帮助显示此帮助消息并退出
--格式{postscript,svg,csv},-f{postscript,svg,csv}
输出格式,其中之一:svg,csv,postscript。
默认值为svg。
--宽度生成的SVG的最大宽度(图形将按比例缩小到PX中的该大小)
--生成的SVG的高度-高度-最大高度(图形将按比例缩小到PX中的该大小)。注意,这是根据最大可能的振幅(给定
采样位深度)来缩放
,而不是根据
实际出现在数据中的最大振幅来缩放的。
--流bs流c中的输入文件大小分别处理/格式化每个块。当
处理大型文件时,对于节省内存很有用,但请注意,多通道
路径将被分割成bs大小的块。通过
默认bs=0,这将导致在处理之前将整个文件读入内存。
--通过在每个n个示例中只保留1个来缩小n的大小。
--日志{debug,info,warning,error,critical}
设置日志记录级别。
输出被发送到stdout。
---
===选项
===输出格式
标记--format设置输出格式。` wav2vec包括三个格式化程序:`svg`(如果未指定"--格式",则为默认值)、`postscript`和`cvs`.
[source,sh]
----
$wav2vec filename.wav--format postscript>;output.ps
---
==缩放输出
使用"--宽度"和"--高度"选项缩放ou使其最大界限等于或小于标志后面的值。在svg中,这些值是像素("用户单位");在postscript中,这些值被解释为pts(1/72英寸)。默认情况下(如果未给定标志),宽度设置为1000,高度设置为500。
[source,sh]
----
$wav2vec filename.wav--width 500--height 350>;output.svg
----
===流输入文件
然后在处理输出时将其流式传输到stdout。传递"--stream"标志将导致"wav2vec"分块处理输入文件。如果输入文件非常大,无法放入可用内存,则这可能非常有用。"--stream"标志需要一个参数,即一次要读取和处理的帧数(每个帧包括来自每个通道的一个样本)。大约1024的值似乎工作得很好。
[source,sh]
----
$wav2vec filename.aiff--stream 1024>;output.svg
----
注意,对具有多个通道的文件使用"--stream"标志将导致输出中的路径不连续(因为通道数据是交错的)隐藏在wav/aif文件中)。
还要注意,将非常大的音频文件转换为svg可能不实用:大多数svg编辑器无法很好地处理几十万或数百万个点的路径。
====下采样
AMPLE。这是一种残酷的下采样形式,它会破坏高频并添加混叠噪声。最好在处理前(或处理后的绘图程序中)在波形记录器/编辑器中缩小采样。
===api
您还可以"导入wav2vec",以便将波形文件转换为您自己的python脚本中支持的输出格式。包提供了两个主要类:"wavdecoder"和抽象的"formatter"(以及具体实现:"svgformatter"、"psformatter"和"csvformatter")。文档当前包含在源文件中;请查看链接:./wav2vec/main.py[main.py]以获取用法示例。
"wavdecoder"类包装标准库的"wave"和"aifc"模块,并提供读取和解码wav/aiff文件的简单方法。将其用作上下文管理器以确保调用"close()"。使用它作为迭代器来处理所有帧:
[源,python]
----
>;>;wd=wavdecoder('filename')
>;>;使用wd作为数据:
>;>;对于数据帧:
>;>;打印(帧)
----
参见链接:./wav2vec/wavdecoder.py[wav2vec/wavdecoder.py]。
formatter类是一个抽象基类,它为所有以文本格式输出wav数据的格式化程序定义接口。"formatter"的每个具体子类在其构造函数中都有一个"wavdecoder"对象,该对象负责从wav或aiff文件读取/解码数据。
e`u str_uu()`方法。
[source,python]
----
>;>wd=wavdecoder("文件名")
>;>svgformatter=svgformatter(wd)
>;>svgformatter.output();将svg输出到stdout
>;
:toc放置!:
=wav2vec.py
==简介
`wav2vec'是一个python脚本和包,用于将波形文件(wav或aiff)转换为矢量图形(svg或postscript)。用例包括在图形设计中将音频波形用作元素或在文档中包含波形。
==features
*portable:在python 2.7+和python 3上运行,不依赖于任何第三方包。
*支持的pcm输入文件格式:
**8位有符号aiff
**8位无符号wav
**16位有符号wav和aiff
**32位有符号wav和aiff
*自动检测和处理输入文件格式(文件名/扩展名不重要)
*输出文件格式:
**scalable vector graphics(svg)
**postscript
**comma-separated values(csv)
*易于编写自定义输出格式化程序
*用于缩放输出数据的选项
*可以处理成块的输入文件,以便用最少的内存处理大文件
==安装
===来自具有pip的pypi
==安装"wav2vec"的最简单方法是se`pip`要从python包索引安装:
[source,sh]
----
$pip install wav2vec
----
==根据您的系统,要在python 3路径中安装,可能必须使用'pip3'而不是'pip'。
==从git repo克隆git存储库
[source,sh]
$git克隆https://github.com/cristoper/wav2vec.git
$cd wav2vec
[source,sh]
[source,sh]
[source,sh]
=$git克隆https://github.com/cristoper/wav2vec.py现在您可以直接运行`wav2vec.py:
/>----
$pip install.
$wav2vec-h
----
==用法
一旦使用pip安装包(见上文),该命令就可以作为"wav2vec"调用。它接受一个输入文件并输出(SVG,默认情况下)到stdout:
[source,sh]
----
$wav2vec filename.wav>;filename.svg
----
run`wav2vec-h`以获取使用摘要:
----usage:wav2vec[-h][--format{postscript,svg,csv}][--width]
[--height height][--stream bs][--downtoss n]
[--log{debug,info,warning,error,critical}]
filename
filename将wav和aiff文件转换为矢量(svg,postscript,cvs)图形。
位置参数:
filename要重新生成的wav文件ad
可选参数:
-h,--帮助显示此帮助消息并退出
--格式{postscript,svg,csv},-f{postscript,svg,csv}
输出格式,其中之一:svg,csv,postscript。
默认值为svg。
--宽度生成的SVG的最大宽度(图形将按比例缩小到PX中的该大小)
--生成的SVG的高度-高度-最大高度(图形将按比例缩小到PX中的该大小)。注意,这是根据最大可能的振幅(给定
采样位深度)来缩放
,而不是根据
实际出现在数据中的最大振幅来缩放的。
--流bs流c中的输入文件大小分别处理/格式化每个块。当
处理大型文件时,对于节省内存很有用,但请注意,多通道
路径将被分割成bs大小的块。通过
默认bs=0,这将导致在处理之前将整个文件读入内存。
--通过在每个n个示例中只保留1个来缩小n的大小。
--日志{debug,info,warning,error,critical}
设置日志记录级别。
输出被发送到stdout。
---
===选项
===输出格式
标记--format设置输出格式。` wav2vec包括三个格式化程序:`svg`(如果未指定"--格式",则为默认值)、`postscript`和`cvs`.
[source,sh]
----
$wav2vec filename.wav--format postscript>;output.ps
---
==缩放输出
使用"--宽度"和"--高度"选项缩放ou使其最大界限等于或小于标志后面的值。在svg中,这些值是像素("用户单位");在postscript中,这些值被解释为pts(1/72英寸)。默认情况下(如果未给定标志),宽度设置为1000,高度设置为500。
[source,sh]
----
$wav2vec filename.wav--width 500--height 350>;output.svg
----
===流输入文件
然后在处理输出时将其流式传输到stdout。传递"--stream"标志将导致"wav2vec"分块处理输入文件。如果输入文件非常大,无法放入可用内存,则这可能非常有用。"--stream"标志需要一个参数,即一次要读取和处理的帧数(每个帧包括来自每个通道的一个样本)。大约1024的值似乎工作得很好。
[source,sh]
----
$wav2vec filename.aiff--stream 1024>;output.svg
----
注意,对具有多个通道的文件使用"--stream"标志将导致输出中的路径不连续(因为通道数据是交错的)隐藏在wav/aif文件中)。
还要注意,将非常大的音频文件转换为svg可能不实用:大多数svg编辑器无法很好地处理几十万或数百万个点的路径。
====下采样
AMPLE。这是一种残酷的下采样形式,它会破坏高频并添加混叠噪声。最好在处理前(或处理后的绘图程序中)在波形记录器/编辑器中缩小采样。
===api
您还可以"导入wav2vec",以便将波形文件转换为您自己的python脚本中支持的输出格式。包提供了两个主要类:"wavdecoder"和抽象的"formatter"(以及具体实现:"svgformatter"、"psformatter"和"csvformatter")。文档当前包含在源文件中;请查看链接:./wav2vec/main.py[main.py]以获取用法示例。
"wavdecoder"类包装标准库的"wave"和"aifc"模块,并提供读取和解码wav/aiff文件的简单方法。将其用作上下文管理器以确保调用"close()"。使用它作为迭代器来处理所有帧:
[源,python]
----
>;>;wd=wavdecoder('filename')
>;>;使用wd作为数据:
>;>;对于数据帧:
>;>;打印(帧)
----
参见链接:./wav2vec/wavdecoder.py[wav2vec/wavdecoder.py]。
formatter类是一个抽象基类,它为所有以文本格式输出wav数据的格式化程序定义接口。"formatter"的每个具体子类在其构造函数中都有一个"wavdecoder"对象,该对象负责从wav或aiff文件读取/解码数据。
e`u str_uu()`方法。
[source,python]
----
>;>wd=wavdecoder("文件名")
>;>svgformatter=svgformatter(wd)
>;>svgformatter.output();将svg输出到stdout
>;