天津手机版建站系统价格,网络建站工作室,软盟软件 app开发公司,凡科互动小游戏接着上一篇教程#xff0c;继续的有各个UTILITIES的介绍。网址 1. Container数据容器的类。这些数据的目的是为了包装数据#xff0c;使用有用的方法来访问和操作数据#xff0c;以及加载和存储数据。 这些容器是从标准的Python容器#xff08;例如对象#xff0c;列表和字… 接着上一篇教程继续的有各个UTILITIES的介绍。网址 1. Container数据容器的类。这些数据的目的是为了包装数据使用有用的方法来访问和操作数据以及加载和存储数据。 这些容器是从标准的Python容器例如对象列表和字典继承的以使它们可以与其他工具和库一起使用。 1.1 Basic containersObjectContainerdcase_util.containers.ObjectContainer从标准对象类继承的对象的容器类。 调用格式功能ObjectContainer(\*args, \*\*kwargs)从标准对象类继承的对象的容器类。ObjectContainer.load([filename])加载文件ObjectContainer.save([filename])保存文件ObjectContainer.show()打印容器内容ObjectContainer.log([level])日志容器内容示例如何从ObjectContainer继承类 1234567891011121314151617181920212223242526272829303132333435class Multiplier(dcase_util.containers.ObjectContainer): def __init__(self, multiplierNone, **kwargs): super(Multiplier, self).__init__(**kwargs) self.multiplier multiplier def __str__(self): ui dcase_util.ui.FancyStringifier() output super(Multiplier, self).__str__() output ui.data(fieldmultiplier, valueself.multiplier) return output def multiply(self, data): return self.multiplier * datam Multiplier(10)m.show()# Multiplier :: Class# multiplier : 10print(m.multiply(5))# 50# Save objectm.save(test.cpickle)# Load objectm2 Multiplier().load(test.cpickle)print(m2.multiply(5))# 50m2.show()# Multiplier :: Class# filename : test.cpickle# multiplier : 101.1.1 DictContainerdcase_util.containers.DictContainer字典容器类继承自标准的字典类。 调用格式功能DictContainer(\*args, \*\*kwargs)字典从标准dict类继承的容器类。DictContainer.load([filename])加载文件DictContainer.save([filename])保存文件DictContainer.show()打印容器内容DictContainer.log([level])日志容器内容DictContainer.get_path(path[, default, data])从带嵌入字典的路径中获取值DictContainer.set_path(path, new_value[, data])使用点路径dotted path在嵌套字典中设置值DictContainer.get_leaf_path_list([...])获取路径列表到嵌套字典中的所有叶节点。DictContainer.merge(override[, target])递归字典合并DictContainer.get_hash_for_path([dotted_path])在给定路径下获取数据的唯一哈希字符串。DictContainer.get_hash([data])获取给定参数字典的唯一哈希字符串md5。用法示例 12345678910111213141516171819202122232425262728293031323334353637383940414243import dcase_utild dcase_util.containers.DictContainer( { test: { field1: 1, field2: 2, }, test2: 100 })d.show()# DictContainer# test# field1 : 1# field2 : 2# test2 : 100print(d.get_path(test.field1))# 1print(d.get_path([test, field1]))# 1print(d.get_path(test2))# 100d.set_path(test.field2, 200)print(d.get_path(test.field2))# 200print(d.get_leaf_path_list())# [test.field1, test.field2, test2]print(d.get_leaf_path_list(target_field_startswithfield))# [test.field1, test.field2]d.show()# DictContainer# test# field1 : 1# field2 : 200# test2 : 1001.1.2 ListContainerdcase_util.containers.ListContainer列表容器从标准列表类继承的容器类。 调用格式功能ListContainer(\*args, \*\*kwargs)字典从标准dict类继承的容器类。ListContainer.load([filename, headers])加载文件ListContainer.save([filename])保存文件ListContainer.show()打印容器内容ListContainer.log([level])日志容器内容ListContainer.update(data)用给定列表替换内容1.1.3 ListDictContainerdcase_util.containers.ListDictContainer从标准列表类继承的字典列表容器类。 调用格式功能ListDictContainer(\*args, \*\*kwargs)字典列表从标准dict类继承的容器类。ListDictContainer.load([filename, fields, ...])加载文件ListDictContainer.save([filename, fields, ...])保存文件ListDictContainer.show()打印容器内容ListDictContainer.log([level])日志容器内容ListDictContainer.search(key, value)在字典列表中搜索ListDictContainer.get_field(field_name[, ...])从字段获取所有数据用法示例 1234567891011121314151617181920212223242526272829303132import dcase_utilld dcase_util.containers.ListDictContainer( [ { field1: 1, field2: 2, }, { field1: 3, field2: 4, }, ])ld.show()# ListDictContainer# [0] # DictContainer# field1 : 1# field2 : 2## [1] # DictContainer# field1 : 3# field2 : 4print(ld.search(keyfield1, value3))# DictContainer# field1 : 3# field2 : 4print(ld.get_field(field_namefield2))# [2, 4]1.1.4 RepositoryContainerdcase_util.containers.RepositoryContainer存储库的容器类从dcase_util.containers.DictContainer继承。 调用格式功能RepositoryContainer(\*args, \*\*kwargs)从DictContainer继承的存储库的容器类。RepositoryContainer.load([filename])加载文件RepositoryContainer.save([filename])保存文件RepositoryContainer.show()打印容器内容RepositoryContainer.log([level])日志容器内容1.1.5 TextContainerdcase_util.containers.TextContainer文本的容器类从dcase_util.containers.ListContainer继承。 TextContainer\ args\ \ * kwargs继承自ListContainer的文本的容器类。 调用格式功能TextContainer(\*args, \*\*kwargs)继承自ListContainer的文本的容器类。TextContainer.load([filename, headers])加载文件TextContainer.save([filename])保存文件TextContainer.show()打印容器内容TextContainer.log([level])日志容器内容1.2 Data containers1.2.1 DataContainerdcase_util.containers.DataContainer数据的容器类从dcase_util.containers.ObjectContainer继承。 调用格式功能DataContainer([data, stats, metadata, ...])数据的容器类从ObjectContainer继承DataContainer.load([filename])Load fileDataContainer.save([filename])Save fileDataContainer.show()打印容器内容DataContainer.log([level])记录容器内容DataContainer.data数据矩阵DataContainer.shape数据矩阵的形状DataContainer.length数据列的数量DataContainer.frames数据帧的数量DataContainer.push_processing_chain_item(...)加工链项目入栈DataContainer.focus_start聚焦段开始DataContainer.focus_stop聚焦段结束DataContainer.stats数据矩阵的基本统计DataContainer.reset_focus()重置聚焦段Focus segmentDataContainer.get_focused()从数据数组获取聚焦段DataContainer.freeze()冻结聚焦段Freeze focus segment并复制为容器数据。DataContainer.get_frames([frame_ids, frame_hop])从数据数组中获取帧。DataContainer.plot()可视化数据数组。1.2.2 DataArrayContainerdcase_util.containers.DataArrayContainer
Container class for data, inherited from dcase_util.containers.DataContainer. 调用格式功能DataArrayContainer([data, stats, metadata, ...])Array data container DataArrayContainer.load([filename])Load fileDataArrayContainer.save([filename])Save fileDataArrayContainer.show(Print container contentDataArrayContainer.log([level])Log container contentDataArrayContainer.dataData matrixDataArrayContainer.shapeShape of data matrixDataArrayContainer.lengthNumber of data columnsDataArrayContainer.framesNumber of data framesDataArrayContainer.push_processing_chain_item(...)Push processing chain itemataArrayContainer.focus_startFocus segment startataArrayContainer.focus_stopFocus segment stopDataArrayContainer.statsBasic statistics of data matrix.DataArrayContainer.reset_focus()Reset focus segmentDataArrayContainer.get_focused()Get focus segment from data array.DataArrayContainer.freeze()Freeze focus segment, copy segment to be container’s data.DataArrayContainer.get_frames([frame_ids, ...])Get frames from data array.DataArrayContainer.plot()Visualize data array.1.2.3 DataMatrix2DContainerdcase_util.containers.DataMatrix2DContainer
DataMatrix2DContainer是二维数据矩阵numpy.ndarray的数据容器。 基本用法 1234567891011121314151617181920212223242526272829# Initialize container with random matrix 10x100, and set time resolution to 20msdata_container dcase_util.containers.DataMatrix2DContainer( datanumpy.random.rand(10,100), time_resolution0.02)# When storing, e.g., acoustic features, time resolution corresponds to feature extraction frame hop length.# Access data matrix directlyprint(data_container.data.shape)# (10, 100)# Show container informationdata_container.show()# DataMatrix2DContainer :: Class# Data# data : matrix (10,100)# Dimensions# time_axis : 1# data_axis : 0# Timing information# time_resolution : 0.02 sec# Meta# stats : Calculated# metadata : -# processing_chain : -# Duration# Frames : 100# Seconds : 2.00 sec该容器具有聚焦机制可灵活定位数据矩阵的一部分。 可以根据时间进行对焦如果时间分辨率已定义则以秒为单位或基于帧ID。 使用焦点机制 focus mechanism访问数据和可视化数据的示例 1234567891011121314151617181920212223242526# Using focus to get part data between 0.5 sec and 1.0 secprint(data_container.set_focus(start_seconds0.5, stop_seconds1.0).get_focused().shape)# (10, 25)# Using focus to get part data between frame 10 and 50print(data_container.set_focus(start10, stop50).get_focused().shape)# (10, 40)# Resetting focus and accessing full data matrixdata_container.reset_focus()print(data_container.get_focused().shape)# (10, 100)# Access frames 1, 2, 10, and 30data_container.get_frames(frame_ids[1,2,10,30])# Access frames 1-5, and only first value per columndata_container.get_frames(frame_ids[1,2,3,4,5], vector_ids[0])# Transpose matrixtransposed_data data_container.Tprint(transposed_data.shape)# (100, 10)# Plot datadata_container.plot()调用格式功能DataMatrix2DContainer([data, stats, ...])Two-dimensional data matrix container class, inherited from DataContainer.DataMatrix2DContainer.load([filename])Load fileDataMatrix2DContainer.save([filename])Save fileDataMatrix2DContainer.show()Print container contentDataMatrix2DContainer.log([level])Log container contentDataMatrix2DContainer.dataData matrixDataMatrix2DContainer.shapeShape of data matrixDataMatrix2DContainer.lengthNumber of data columnsDataMatrix2DContainer.framesNumber of data framesDataMatrix2DContainer.vector_lengthData vector lengthDataMatrix2DContainer.push_processing_chain_item(...)Push processing chain itemDataMatrix2DContainer.focus_startFocus segment startDataMatrix2DContainer.focus_stopFocus segment stopDataMatrix2DContainer.TTransposed data in a data containerDataMatrix2DContainer.statsBasic statistics of data matrix.DataMatrix2DContainer.reset_focus()Reset focus segmentDataMatrix2DContainer.get_focused()Get focus segment from data matrix.DataMatrix2DContainer.freeze()Freeze focus segment, copy segment to be container’s data.DataMatrix2DContainer.get_frames([...])Get frames from data matrix.DataMatrix2DContainer.plot()Visualize data matrix.1.2.4 DataMatrix3DContainerdcase_util.containers.DataMatrix3DContainer
调用格式功能DataMatrix3DContainer([data, stats, ...])三位数据矩阵容器, 从DataMatrix2DContainer继承.DataMatrix3DContainer.load([filename])Load fileDataMatrix3DContainer.save([filename])Save fileDataMatrix3DContainer.show()Print container contentDataMatrix3DContainer.log([level])Log container contentDataMatrix3DContainer.dataData matrixDataMatrix3DContainer.lengthNumber of data columnsDataMatrix3DContainer.framesNumber of data frames1.2.5 BinaryMatrix3DContainerdcase_util.containers.BinaryMatrix2DContainer
调用格式功能BinaryMatrix2DContainer([data, ...])Two-dimensional data matrix container class, inherited from DataContainer.BinaryMatrix2DContainer.load([filename])Load fileBinaryMatrix2DContainer.save([filename])Save fileBinaryMatrix2DContainer.show()Print container contentBinaryMatrix2DContainer.log([level])Log container contentBinaryMatrix2DContainer.dataData matrixBinaryMatrix2DContainer.lengthNumber of data columnsBinaryMatrix2DContainer.framesNumber of data framesBinaryMatrix2DContainer.pad(length[, ...])Pad binary matrix along time axisBinaryMatrix2DContainer.plot([...])Visualize binary matrix, and optionally synced data matrix.1.2.4 DataRepositorydcase_util.containers.DataRepository
DataRepository是可用于存储多个其他数据容器的容器。存储库存储具有两个级别信息的数据标签和流。 标签是更高级别的密钥流是第二级。 例如可以使用储存库来储存与相同音频信号有关的多个不同声学特征。 流ID可用于存储从不同音频通道提取的特征。 后面的功能可以使用提取器标签和流ID进行访问。 用法示例 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152# Initialize container with datadata_repository dcase_util.containers.DataRepository( data{ label1: { stream0: { data: 100 }, stream1: { data: 200 } }, label2: { stream0: { data: 300 }, stream1: { data: 400 } } })# Show container information::data_repository. show()# DataRepository :: Class# Repository info# Item class : DataMatrix2DContainer# Item count : 2# Labels : [label1, label2]# Content# [label1][stream1] : {data: 200}# [label1][stream0] : {data: 100}# [label2][stream1] : {data: 400}# [label2][stream0] : {data: 300}# Accessing data inside repositorydata_repository.get_container(labellabel1,stream_idstream1)# {data: 200}# Setting datadata_repository.set_container(labellabel3,stream_idstream0, container{data:500})data_repository. show()# DataRepository :: Class# Repository info# Item class : DataMatrix2DContainer# Item count : 3# Labels : [label1, label2, label3]# Content# [label1][stream1] : {data: 200}# [label1][stream0] : {data: 100}# [label2][stream1] : {data: 400}# [label2][stream0] : {data: 300}# [label3][stream0] : {data: 500}调用格式功能DataRepository([data, filename_dict, ...])数据存储库容器类将多个DataContainer一起存储DataRepository.load([filename_dict])Load file listDataRepository.get_container(label[, stream_id])Get container from repositoryDataRepository.set_container(container, label)Store container to repositoryDataRepository.push_processing_chain_item(...)Push processing chain itemDataRepository.plot()可视化存储在存储库中的数据。1.3 Audio containersdcase_util.containers.AudioContainer
AudioContainer是用于多声道音频的数据容器。 它读取多种格式WAVFLACM4AWEBM并写入WAV和FLAC文件。 直接从Youtube下载音频内容也受支持。 基本用法示例 123456789101112131415161718192021222324252627# Generating two-channel audioaudio_container dcase_util.containers.AudioContainer(fs44100)t numpy.linspace(0, 2, 2 * audio_container.fs, endpointFalse)x1 numpy.sin(220 * 2 * numpy.pi * t)x2 numpy.sin(440 * 2 * numpy.pi * t)audio_container.data numpy.vstack([x1, x2])audio_container.show()# AudioContainer :: Class# Sampling rate : 44100# Channels : 2# Duration# Seconds : 2.00 sec# Milliseconds : 2000.00 ms# Samples : 88200 samples# Loading audio fileaudio_container dcase_util.containers.AudioContainer().load( filenamedcase_util.utils.Example.audio_filename())# Loading audio content from Youtubeaudio_container dcase_util.containers.AudioContainer().load_from_youtube( query_id2ceUOv8A3FE, start1, stop5)该容器具有聚焦机制可灵活捕捉部分音频数据同时保持完整的音频信号不变。 可以根据时间进行聚焦如果时间分辨率已定义则以秒为单位或基于样本ID。 可以对单声道或混音单声道频道进行聚焦。 音频容器内容可以通过冻结来替代焦点细分。 使用焦点细分机制的示例 123456789101112131415161718192021222324252627282930313233# Using focus to get part data between 0.5 sec and 1.0 secprint(audio_container.set_focus(start_seconds0.5, stop_seconds1.0).get_focused().shape)# (2, 22050)# Using focus to get part data starting 5 sec with 2 sec durationprint(audio_container.set_focus(start_seconds5, duration_seconds2.0).get_focused().shape)# (2, 88200)# Using focus to get part data starting 5 sec with 2 sec duration, mixdown of two stereo channelsprint(audio_container.set_focus(start_seconds5, duration_seconds2.0, channelmixdown).get_focused().shape)# (88200,)# Using focus to get part data starting 5 sec with 2 sec duration, left of two stereo channelsprint(audio_container.set_focus(start_seconds5, duration_seconds2.0, channelleft).get_focused().shape)# (88200,)# Using focus to get part data starting 5 sec with 2 sec duration, seconds audio channel (indexing starts from 0)print(audio_container.set_focus(start_seconds5, duration_seconds2.0, channel1).get_focused().shape)# (88200,)# Using focus to get part data between samples 44100 and 88200print(audio_container.set_focus(start44100, stop88200).get_focused().shape)# (2, 44100)# Resetting focus and accessing full data matrix::audio_container.reset_focus()print(audio_container.get_focused().shape)# (2, 441001)# Using focus to get part data starting 5 sec with 2 sec duration, and freeze this segment ::audio_container.set_focus(start_seconds5, duration_seconds2.0).freeze()print(audio_container.shape)# (2, 88200)Processing examples: 12345# Normalizing audioaudio_container.normalize()# Resampling audio to target sampling rateaudio_container.resample(target_fs16000)Visualizations examples: 12345# Plotting waveformaudio_container.plot_wave()# Plotting spectrogramaudio_container.plot_spec()类功能AudioContainer([data, fs, ...])Audio container class.AudioContainer.load([filename, fs, mono, ...])Load fileAudioContainer.load_from_youtube(query_id[, ...])Load audio data from youtubeAudioContainer.save([filename, bit_depth])Save audioAudioContainer.show()Print container contentAudioContainer.log([level])Log container contentAudioContainer.dataAudio dataAudioContainer.focus_start_samplesFocus segment start in samples.AudioContainer.focus_start_secondsFocus segment start in seconds.AudioContainer.focus_stop_samplesFocus segment stop in samples.AudioContainer.focus_stop_secondsFocus segment stop in seconds.AudioContainer.focus_channelFocus channelAudioContainer.loadedAudio load status.AudioContainer.shapeAudio data shape.AudioContainer.lengthLength of audio data in samples.AudioContainer.duration_samplesDuration of audio data in samples.AudioContainer.duration_msDuration of audio data in milliseconds.AudioContainer.duration_secDuration of audio data in seconds.AudioContainer.streamsRename channels for compatibility.AudioContainer.emptCheck if audio data is empty.AudioContainer.reset_focus()Reset focus segment.AudioContainer.set_focus([start, stop, ...])Set focus segmentAudioContainer.get_focused()Get focus segment from audio data.AudioContainer.freeze()Freeze focus segment, copy segment to be container’s data.AudioContainer.frames([frame_length, ...])Slice audio into overlapping frames.AudioContainer.normalize([headroom])Normalize audio data.AudioContainer.resample(target_fs[, scale, ...])Resample audio data.AudioContainer.mixdown()Mix all audio channels into single channel.AudioContainer.plot([plot_type])Visualize audio dataAudioContainer.plot_wave([x_axis, ...])Visualize audio data as waveform.AudioContainer.plot_spec([spec_type, ...])Visualize audio data as spectrogram.1.4 Feature containersFeatureContainer dcase_util.containers.FeatureContainer 类功能FeatureContainer([data, stats, metadata, ...])从DataContainer继承的单个特征矩阵的特征容器类。FeatureRepository dcase_util.containers.FeatureRepository 类功能FeatureRepository([filename_dict, ...])Feature repository container class to store multiple FeatureContainers together.1.5 Mapping containersOneToOneMappingContainerdcase_util.containers.OneToOneMappingContainer 类功能OneToOneMappingContainer(\*args, \*\*kwargs)Mapping container class for 1:1 data mapping, inherited from DictContainer class.OneToOneMappingContainer.load([filename])Load fileOneToOneMappingContainer.save([filename])Save fileOneToOneMappingContainer.show()Print container contentOneToOneMappingContainer.log([level])Log container contentOneToOneMappingContainer.map(key[, default])Map with a key.OneToOneMappingContainer.flippedExchange map key and value pairs.1.6 Metadata containersMetaDataItem dcase_util.containers.MetaDataItem 类功能MetaDataItem(\*args, \*\*kwargs)Meta data item class, inherited from standard dict class.MetaDataItem.show()Print container contentMetaDataItem.log([level])Log container contentMetaDataItem.idUnique item identifierMetaDataItem.get_list()Return item values in a list with specified order.MetaDataItem.filenameFilenameMetaDataItem.filename_originalFilenameMetaDataItem.scene_labelScene labelMetaDataItem.event_labelEvent labelMetaDataItem.onsetOnsetMetaDataItem.offsetOffsetMetaDataItem.identifierIdentifierMetaDataItem.source_labelSource labelMetaDataItem.tagsTagsMetaDataItem.active_within_segment(start, stop)Item active withing given segment.MetaDataContainer dcase_util.containers.MetaDataContainer 类功能MetaDataContainer(\*args, \*\*kwargs)Meta data container class, inherited from ListDictContainer.MetaDataContainer.log([level, show_data, ...])Log container contentMetaDataContainer.log_all([level])Log container content with all meta data items.MetaDataContainer.show([show_data, show_stats])Print container contentMetaDataContainer.show_all()Print container content with all meta data items.MetaDataContainer.load([filename, fields, ...])Load event list from delimited text file (csv-formatted)MetaDataContainer.save([filename, fields, ...])Save content to csv fileMetaDataContainer.append(item)Append item to the meta data listMetaDataContainer.file_countNumber of filesMetaDataContainer.event_countNumber of eventsMetaDataContainer.scene_label_countNumber of unique scene labelsMetaDataContainer.event_label_countNumber of unique event labelsMetaDataContainer.identifier_countNumber of unique identifiersMetaDataContainer.tag_countNumber of unique tagsMetaDataContainer.unique_filesUnique filesMetaDataContainer.unique_event_labelsUnique event labelsMetaDataContainer.unique_scene_labelsUnique scene labelsMetaDataContainer.unique_tagsUnique tagsMetaDataContainer.unique_identifiersUnique identifiersMetaDataContainer.max_offsetFind the offset (end-time) of last eventMetaDataContainer.get_string([show_data, ...])Get content in string formatMetaDataContainer.filter([filename, ...])Filter contentMetaDataContainer.filter_time_segment([...])Filter time segmentMetaDataContainer.process_events([...])Process event contentMetaDataContainer.add_time(time)Add time offset to event onset and offset timestampsMetaDataContainer.stats([event_label_list, ...])Statistics of the container contentMetaDataContainer.scene_stat_counts()Scene count statisticsMetaDataContainer.event_stat_counts()Event count statisticsMetaDataContainer.tag_stat_counts()Tag count statisticsMetaDataContainer.to_event_roll([...])Event rollMetaDataContainer.intersection(second_metadata)Intersection of two meta containersMetaDataContainer.intersection_report(...)Intersection report for two meta containersMetaDataContainer.difference(second_metadata)Difference of two meta containers1.7 Parameter containersParameterContainer dcase_util.containers.ParameterContainer 类名功能ParameterContainer(\*args, \*\*kwargs)参数容器类用于继承自DictContainer类的参数。AppParameterContainer dcase_util.containers.AppParameterContainer 类名功能AppParameterContainer([data, app_base, ...])应用程序参数的参数容器类继承自ParameterContainer。AppParameterContainer.reset([field_labels, ...])AppParameterContainer.process([...])Process parametersAppParameterContainer.override(override)递归地覆盖容器内容。AppParameterContainer.get_path_translated(path)用路径获取数据路径可以包含将被翻译的字符串常量。AppParameterContainer.set_path_translated(...)用路径设置数据路径可以包含将被翻译的字符串常量。DCASEAppParameterContainer dcase_util.containers.DCASEAppParameterContainer 类名功能DCASEAppParameterContainer(\*args, \*\*kwargs)DCASE应用程序参数文件的参数容器类从AppParameterContainer继承。ParameterListContainer dcase_util.containers.ParameterListContainer 类名功能ParameterListContainer(\*args, \*\*kwargs)参数列表容器继承自ListDictContainer。1.8 Probability containersProbabilityItem dcase_util.containers.ProbabilityItem 类名功能ProbabilityItem(\*args, \*\*kwargs)概率数据项类继承自标准字典类。ProbabilityItem.show()Print container contentProbabilityItem.log([level])Log container contentProbabilityItem.filenameFilenameProbabilityItem.labelLabelProbabilityItem.probabilityReturns: ProbabilityItem.id唯一的项目item标识ProbabilityItem.get_list()以指定顺序返回列表中的项目item值。ProbabilityContainer dcase_util.containers.ProbabilityContainer 类名功能ProbabilityContainer(\*args, \*\*kwargs)概率数据容器类继承自ListDictContainer。ProbabilityContainer.show()Print container contentProbabilityContainer.log([level])Log container contentProbabilityContainer.load([filename])来自分隔文本文件的加载概率列表csv格式ProbabilityContainer.save([filename, delimiter])Save content to csv fileProbabilityContainer.append(item)Append item to the meta data listProbabilityContainer.unique_filesUnique filesProbabilityContainer.unique_labelsUnique labelsProbabilityContainer.filter([filename, ...])Filter content1.9 MIxinsContainerMixin dcase_util.containers.ContainerMixin 类名功能ContainerMixin(\*args, \*\*kwargs)Container mixin to give class basic container methods.ContainerMixin.show()Print container contentContainerMixin.log([level])Log container contentFileMixin dcase_util.containers.FileMixin 类名功能FileMixin(\*args, \*\*kwargs)File mixin to give class methods to load and store content.FileMixin.get_file_information()Get file information, filenameFileMixin.detect_file_format([filename])Detect file format from extensionFileMixin.validate_format()Validate file formatFileMixin.exists()Checks that file existsFileMixin.empty()Check if file is emptyFileMixin.delimiter([exclude_delimiters])Use csv.sniffer to guess delimiter for CSV fileFileMixin.is_package([filename])Determine if the file is compressed package.PackageMixin dcase_util.containers.PackageMixin 类名功能PackageMixin(\*args, \*\*kwargs)打包mixin以提供处理压缩文件包的类基本方法。PackageMixin.package_passwordPackage passwordPackageMixin.extract([overwrite, ...])解压缩包2. Data数据处理的类 2.1 Buffersdcase_util.data.DataBuffer 数据缓冲类可用于存储与项目关联的数据和元数据。 项目数据通过项目键进行访问。当内部缓冲区被填满时最旧的项目被替换。 类名功能DataBuffer([size])数据缓冲区先进先出DataBuffer.set(key[, data, meta])将项目item插入缓冲区DataBuffer.get(key)根据键获取项目itemDataBuffer.clear()清空缓冲区DataBuffer.count缓冲区使用情况DataBuffer.full缓冲区已满DataBuffer.key_exists(key)检查键key是否存在于缓冲区中2.2 EncodersBinaryMatrixEncoder dcase_util.data.BinaryMatrixEncoder 类名功能BinaryMatrixEncoder([label_list...])二进制矩阵编码器基类BinaryMatrixEncoder.pad(length [binary_matrix])沿时间轴填充二进制矩阵BinaryMatrixEncoder.plot([binary_matrix...])可视化二进制矩阵和可选的同步数据矩阵。OneHotEncoder dcase_util.data.OneHotEncoder 类名功能OneHotEncoder([label_list, time_resolution, ...])One hot encoder classOneHotEncoder.encode(label[, length_frames, ...])Generate one hot binary matrixManyHotEncoder dcase_util.data.ManyHotEncoder 类名功能ManyHotEncoder([label_list, ...])Many hot encoder classManyHotEncoder.encode(label_list[, ...])Generate one hot binary matrixEventRollEncoder dcase_util.data.EventRollEncoder 类名功能EventRollEncoder([label_list, ...])Event list encoder classEventRollEncoder.encode(metadata_container)Generate event roll from MetaDataContainer2.3 Data manipulatorsNormalizer dcase_util.data.Normalizer 类名功能Normalizer([n, s1, s2, mean, std])数据归一化器来累积数据统计Normalizer.log([level])记录容器内容Normalizer.show()打印容器内容Normalizer.load([filename])Load fileNormalizer.save([filename])Save fileNormalizer.meanMean vectorNormalizer.std标准差矢量Normalizer.reset()充值内部变量Normalizer.accumulate(data[, time_axis])计算统计量Normalizer.finalize()完成统计计算Normalizer.normalize(data)使用该类的内部统计量标准化特征矩阵RepositoryNormalizer dcase_util.data.RepositoryNormalizer 类名功能RepositoryNormalizer([normalizer_dict, ...])Data repository normalizerRepositoryNormalizer.load(filename_dict)Load normalizers from disk.RepositoryNormalizer.normalize(data_repository)Normalize data repositoryAggregator聚合dcase_util.data.Aggregator数据聚合器可用于处理窗口中的数据矩阵。 这个处理阶段可以用来通过计算它们的平均值和标准差来在特定的窗口长度内折叠数据或者将该矩阵平坦化为单个向量。 支持的处理方法 12345678910data_aggregator dcase_util.data.Aggregator( recipe[mean, std], win_length_frames10, hop_length_frames1,)data_stacker dcase_util.data.Stacker(recipemfcc)data_repository dcase_util.utils.Example.feature_repository()data_matrix data_stacker.stack(data_repository)data_matrix data_aggregator.aggregate(data_matrix)类名功能Aggregator([win_length_frames, ...])Data aggregatorAggregator.log([level])Log container contentAggregator.show()Print container contentAggregator.load([filename])Load fileAggregator.save([filename])Save fileAggregator.aggregate([data])Aggregate dataSequencer dcase_util.data.Sequencer Sequencer类将数据矩阵处理成序列图像。 序列可以重叠并且可以在调用之间改变排序网格移位。 类名 | 功能 —|—Sequencer([frames, hop_length_frames, ...]) | Data sequencerSequencer.log([level]) | Log container contentSequencer.show() | Print container contentSequencer.load([filename]) | Load fileSequencer.save([filename]) | Save fileSequencer.sequence([data]) | Make sequencesSequencer.increase_shifting([shift_step]) | Increase temporal shifting Stacker dcase_util.data.Stacker 数据堆叠类。 Class使用矢量配方和DataRepository并创建适当的数据矩阵。 矢量方法Vector recipe 使用recipe您可以选择全矩阵只选择开始和结束索引的一部分或从中选择单个行。 例子 123456789101112131415161718192021222324[ { method: mfcc, }, { method: mfcc_delta vector-index: { channel: 0, start: 1, end: 17, full: False, selection: False, } }, { method: mfcc_acceleration, vector-index: { channel: 0, full: False, selection: True, vector: [2, 4, 6] } }] 请参阅dcase_util.utils.VectorRecipeParser如何方便地使用配方字符串来生成上述数据结构。 类名功能Stacker([recipe, hop])Data stackerStacker.log([level])Log container contentStacker.show()Print container contentStacker.load([filename])Load fileStacker.save([filename])Save fileStacker.stack(repository)Vector creation based on recipeSelector dcase_util.data.Selector数据选择类 类名功能Selector(\*\*kwargs)Data selectorSelector.log([level])Log container contentSelector.show()Print container contentSelector.load([filename])Load fileSelector.save([filename])Save fileSelector.select(data[, selection_events])Selecting feature repository with given eventsMasker dcase_util.data.Masker数据屏蔽筛选类。 类名功能Masker(\*\*kwargs)Data maskerMasker.log([level])Log container contentMasker.show()Print container contentMasker.load([filename])Load fileMasker.save([filename])Save fileMasker.mask(data[, mask_events])Masking feature repository with given events2.4 ProbabilityProbabilityEncoderdcase_util.data.ProbabilityEncoder 类名功能ProbabilityEncoder([label_list])ConstructorProbabilityEncoder.log([level])Log container contentProbabilityEncoder.show()Print container contentProbabilityEncoder.load([filename])Load fileProbabilityEncoder.save([filename])Save fileProbabilityEncoder.collapse_probabilities(...)Collapse probabilitiesProbabilityEncoder.collapse_probabilities_windowed(...)Collapse probabilities in windowsProbabilityEncoder.binarization(probabilities)Binarization2.5 EecisionsDecisionEncoderdcase_util.data.DecisionEncoder 类名功能DecisionEncoder([label_list])构造器DecisionEncoder.log([level])Log container contentDecisionEncoder.show()Print container contentDecisionEncoder.load([filename])Load fileDecisionEncoder.save([filename])Save fileDecisionEncoder.majority_vote(frame_decisions)多票制DecisionEncoder.find_contiguous_regions(...)从具有布尔值的numpy.array找到连续区域。DecisionEncoder.process_activity(...[, operator])处理动态数组二进制3. Datasets3.1 Datasetdcase_util.datasets.Dataset这是基类所有专用数据集都是从它继承而来的。基类本身不能使用。 用法示例 123456789101112# Create classdataset dcase_util.datasets.TUTAcousticScenes_2017_DevelopmentSet(data_pathdata)# Initialize dataset, this will make sure dataset is downloaded, packages are extracted,# and needed meta files are createddataset.initialize()# Show meta datadataset.meta.show()# Get all evaluation setup foldsfolds dataset.folds()# Get all evaluation setup foldstrain_data_fold1 dataset.train(foldfolds[0])test_data_fold1 dataset.test(foldfolds[0])语法格式功能Dataset([name, storage_name, data_path, ...])数据集基类Dataset.initialize()数据集基类Dataset.download_packages()通过互联网将数据集包下载到本地路径Dataset.extract_packages()提取数据集包Dataset.prepare()为使用准备数据集Dataset.process_meta_item(item[, absolute_path])处理单个元数据项目Dataset.check_filelist()从文件列表生成哈希并检查它是否与保存在filelist.hash中的哈希匹配Dataset.show()打印数据集信息Dataset.log()记录数据集信息Dataset.load()将数据集元数据和交叉验证集加载到容器中Dataset.load_meta()将元数据添加到容器中Dataset.load_crossvalidation_data()将交叉验证加载到容器中Dataset.audio_files获取数据集中的所有音频文件Dataset.audio_file_count获取数据集中音频文件的数量Dataset.meta获取数据集的元数据。Dataset.meta_count元数据项的数量Dataset.error_meta获取数据集的音频错误元数据Dataset.error_meta_count错误元数据项的数量Dataset.folds([mode])fold ID列表Dataset.fold_count评估设置中的fold次数Dataset.evaluation_setup_filename([...])评估设置文件名生成Dataset.train([fold, absolute_paths])训练列表Dataset.test([fold, absolute_paths])测试列表Dataset.eval([fold, absolute_paths])评估列表Dataset.train_files([fold, absolute_paths])训练文件列表Dataset.test_files([fold, absolute_paths])测试文件列表Dataset.eval_files([fold, absolute_paths])评估文件列表Dataset.validation_split([fold, split_type, ...])验证文件列表Dataset.validation_files_dataset([fold, verbose])由数据集提供的验证文件列表Dataset.validation_files_random([fold, ...])从训练集中随机选择的验证文件列表。Dataset.validation_files_balanced([fold, ...])在保持数据平衡的同时随机选择验证文件列表Dataset.scene_labels()元数据中唯一场景标签的列表Dataset.scene_label_count()元数据中唯一场景标签的数量Dataset.event_labels(\*\*kwargs)元数据中的唯一事件标签列表Dataset.event_label_count(\*\*kwargs)元数据中的唯一事件标签列表Dataset.tags()元数据中唯一音频标签的列表Dataset.tag_count()元数据中唯一音频标签的数量Dataset.file_meta(filename)给定文件的元数据Dataset.file_error_meta(filename)给定文件的错误元数据Dataset.file_features(filename)预先计算给定文件的声学特征Dataset.relative_to_absolute_path(path)将相对路径转换为绝对路径Dataset.absolute_to_relative_path(path)将绝对路径转换为相对路径Dataset.dataset_bytes()数据集的总下载大小以字节为单位Dataset.dataset_size_string()字符串中数据集的总下载大小Dataset.dataset_size_on_disk()当前存储在本地的数据集的总大小3.2 AcousticScenesDatasetdcase_util.datasets.AcousticSceneDataset格式如下 AcousticSceneDataset(\*args, \*\*kwargs) 继承自AcousticSceneDataset的几个类 类名功能TUTAcousticScenes_2017_DevelopmentSet([...])TUT Acoustic scenes 2017 开发数据集TUTAcousticScenes_2017_EvaluationSet([...])TUT Acoustic scenes 2017 评估数据集TUTAcousticScenes_2016_DevelopmentSet([...])TUT Acoustic scenes 2016 开发数据集TUTAcousticScenes_2016_EvaluationSet([...])TUT Acoustic scenes 2016 评估数据集3.3 SoundEventDatasetdcase_util.datasets.SoundEventDataset 方法功能SoundEventDataset(\*args, \*\*kwargs)SoundEventDataset.event_label_count([...])Number of unique scene labels in the meta data.SoundEventDataset.event_labels([scene_label])List of unique event labels in the meta data.SoundEventDataset.train([fold, ...])List of training items.SoundEventDataset.test([fold, ...])List of testing items.继承自SoundEventDataset的几个类 类名功能TUTRareSoundEvents_2017_DevelopmentSet([...])TUT Acoustic scenes 2017 development datasetTUTRareSoundEvents_2017_EvaluationSet([...])TUT Acoustic scenes 2017 evaluation datasetTUTSoundEvents_2017_DevelopmentSet([...])TUT Sound events 2017 development datasetTUTSoundEvents_2017_EvaluationSet([...])TUT Sound events 2017 evaluation datasetTUTSoundEvents_2016_DevelopmentSet([...])TUT Sound events 2016 development datasetTUTSoundEvents_2016_EvaluationSet([...])TUT Sound events 2016 evaluation datasetTUT_SED_Synthetic_2016([storage_name, ...])TUT SED Synthetic 20163.4 AudioTaggingDatasetdcase_util.datasets.AudioTaggingDataset 语法格式AudioTaggingDataset(\*args, \*\*kwargs) 类名功能DCASE2017_Task4tagging_DevelopmentSet([...])DCASE 2017 Large-scale weakly supervised sound event detection for smart carsDCASE2017_Task4tagging_EvaluationSet([...])DCASE 2017 Large-scale weakly supervised sound event detection for smart carsCHiMEHome_DomesticAudioTag_DevelopmentSet([...])Constructor4. Decorators修饰符用于修饰函数的辅助类 RunOncedcase_util.decorators.RunOnce RunOnce(f) Decorator 类只允许执行一次 5. Features提取特征的类 FeatureExtractor基本特征提取dcase_util.features.FeatureExtractor特征提取基本类语法格式FeatureExtractor([fs, win_length_samples, ...]) 1class dcase_util.features.FeatureExtractor(fs44100, win_length_samplesNone, hop_length_samplesNone, win_length_seconds0.04, hop_length_seconds0.02, **kwargs)SpectralFeatureExtractordcase_util.features.SpectralFeatureExtractor类名功能SpectralFeatureExtractor([spectrogram_type, ...])特殊特征提取基础类SpectralFeatureExtractor.get_window_function(n)窗函数SpectralFeatureExtractor.get_spectrogram(y)谱图MelExtractorMeldcase_util.features.MelExtractor类名功能MelExtractor([fs, win_length_samples, ...])梅尔带能量特征提取类MelExtractor.extract(y)提取音频信号的特征MfccStaticExtractorMFCCdcase_util.features.MfccStaticExtractor类名功能MfccStaticExtractor([fs, ...])用于提取静态MFCC功能的特征提取器类MfccStaticExtractor.extract(y)提取音频信号的特征MfccDeltaExtractorMFCC一阶导dcase_util.features.MfccDeltaExtractor 类名功能MfccDeltaExtractor([fs, win_length_samples, ...])MFCC一阶导MfccDeltaExtractor.extract(y)提取音频信号的特征MfccAccelerationExtractorMFCC二阶导dcase_util.features.MfccAccelerationExtractor类名功能MfccAccelerationExtractor([fs, ...])MFCC二阶导 MFCC acceleration featuresMfccAccelerationExtractor.extract(y)提取音频信号的特征ZeroCrossingRateExtractor过零率dcase_util.features.ZeroCrossingRateExtractor类名功能ZeroCrossingRateExtractor([fs, ...])过零率ZeroCrossingRateExtractor.extract(y)提取音频信号的特征RMSEnergyExtractor均方根能量特征dcase_util.features.RMSEnergyExtractor类名功能RMSEnergyExtractor([fs, win_length_samples, ...])均方根能量特征RMSEnergyExtractor.extract(y)提取音频信号的特征SpectralCentroidExtractor光谱质心dcase_util.features.SpectralCentroidExtractor类名功能SpectralCentroidExtractor([fs, ...])光谱质心SpectralCentroidExtractor.extract(y)提取音频信号的特征6. Files6.1 Filedcase_util.files.File通用的文件类 类名功能File(\*args, \*\*kwargs)通用类File.load([filename])加载文件File.save(data[, filename])保存文件File.get_file_information()得到文件信息、文件名File.detect_file_format([filename])根据扩展检测文件格式File.validate_format()验证文件格式有效性File.exists()检查文件是否存在File.empty()检查文件是否为空File.delimiter([exclude_delimiters])使用csv.sniffer猜测CSV文件的分隔符File.is_package([filename])确定文件是否为压缩包6.2 FileLockdcase_util.files.FileLock简单的基于文件的锁定类。 类名功能FileLock(filename[, timeout, ...])简单的基于文件的锁定类FileLock.lock()锁定文件FileLock.release()释放文件锁FileLock.expired检查比指定超时更早的锁定文件FileLock.is_locked检查锁定文件是否存在FileLock.touch()使用当前时间戳创建锁定文件6.3 remotefiledcase_util.files.RemoteFile远程文件处理类。 类名功能RemoteFile([filenamecontent_type...])远程文件类RemoteFile.download()下载远程文件并将其保存为本地文件。RemoteFile.is_content_type(content_type)检查该文件是否包含给定类型的内容RemoteFile.local_md5本地文件的校验和。RemoteFile.local_modified修改本地文件的时间戳。RemoteFile.local_bytes本地文件的文件大小(以字节为单位)。RemoteFile.local_size_string()以可读形式存在的本地文件的文件大小。RemoteFile.local_exists()检查本地文件是否存在。RemoteFile.local_changed()检查本地文件是否对应于远程文件(基于校验和或修改时间和文件大小)。RemoteFile.remote_file指向远程文件的URLRemoteFile.remote_modified远程文件的最后修改时间。RemoteFile.remote_bytes远程文件的文件大小。RemoteFile.remote_status远程文件的状态。RemoteFile.remote_size_string()以人类可读形式的远程文件的文件大小。RemoteFile.remote_info()获取有关删除文件(状态大小校验和上次修改时间)的信息。RemoteFile.remote_exists()检查远程文件是否存在(基于HTTP状态码)。6.4 RemotePackagedcase_util.files.RemotePackage远程包处理类。 类名功能RemotePackage([filenamecontent_type...])远程软件包类RemotePackage.download()下载远程文件并将其保存为本地文件。RemotePackage.extract([覆盖...])解压缩包RemotePackage.package_password包密码RemotePackage.is_content_type(content_type)检查该文件是否包含给定类型的内容RemotePackage.local_md5本地文件的校验和。RemotePackage.local_modified修改本地文件的时间戳。RemotePackage.local_bytes本地文件的文件大小(以字节为单位)。RemotePackage.local_size_string()以可读形式存储本地文件的文件大小。RemotePackage.local_exists()检查本地文件是否存在。RemotePackage.local_changed()检查本地文件是否对应于远程文件(基于校验和或修改时间和文件大小)。RemotePackage.remote_file指向远程文件的URLRemotePackage.remote_modified远程文件的最后修改时间。RemotePackage.remote_bytes远程文件的文件大小。RemotePackage.remote_status远程文件的状态。RemotePackage.remote_size_string()以可读形式显示远程文件的文件大小。RemotePackage.remote_info()获取有关删除文件(状态大小校验和上次修改时间)的信息。RemotePackage.remote_exists()检查远程文件是否存在(基于HTTP状态码)。6.5 Serializerdcase_utils.files.Serializer数据序列化类 类名功能Serializer数据序列化类Serializer.load_yaml(filename)加载YAML文件Serializer.load_cpickle(filename)加载CPICKLE文件Serializer.load_json(filename)加载JSON文件Serializer.load_msgpack(filename)Load MSGPACK fileSerializer.load_marshal(filename)Load MARSHAL fileSerializer.save_yaml(filename, data)Save data into YAML fileSerializer.save_cpickle(filename, data)Save data into CPICKLE fileSerializer.save_json(filename, data)Save data into JSON fileSerializer.save_msgpack(filename, data)Save data into MSGPACK fileSerializer.save_marshal(filename, data)Save data into MARSHAL file7. Keras utilities使用Keras深度学习库的单元。 7.1 Modeldcase_util.keras.model。* 类名功能create_sequential_model(model_parameter_list)创建顺序Keras模型model_summary_string(keras_model)字符串中的模型摘要类似于Keras模型摘要函数。7.2 Callbacks用法示例如何将外部度量与dcase_util提供的Callback类一起使用 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182epochs 100batch_size 256loss categorical_crossentropymetrics [categorical_accuracy]processing_interval 1manual_update Trueexternal_metric_labels{ER: Error rate}callback_list [ dcase_util.keras.ProgressLoggerCallback( epochsepochs, metricmetrics, lossloss, manual_updatemanual_update, manual_update_intervalprocessing_interval, external_metric_labelsexternal_metric_labels ), dcase_util.keras.ProgressPlotterCallback( epochsepochs, metricmetrics, saveFalse, manual_updatemanual_update, manual_update_intervalprocessing_interval, external_metric_labelsexternal_metric_labels ), dcase_util.keras.StopperCallback( epochsepochs, monitormetric[0], manual_updatemanual_update, ), dcase_util.keras.StasherCallback( epochsepochs, monitormetric[0], manual_updatemanual_update, ) ]for epoch_start in range(0, epochs, processing_interval): epoch_end epoch_start processing_interval # Make sure we have only specified amount of epochs if epoch_end epochs: epoch_end epochs # Train model keras_model.fit( xtraining_X, ytraining_Y, validation_data(validation_X, validation_Y), callbackscallback_list, verbose0, initial_epochepoch_start, epochsepoch_end, batch_sizebatch_size, shuffleTrue ) # Calculate external metrics ER 0.0 # Inject external metric values to the callbacks for callback in callback_list: if hasattr(callback, set_external_metric_value): callback.set_external_metric_value( metric_labelER, metric_valueER ) # Manually update callbacks for callback in callback_list: if hasattr(callback, update): callback.update() # Check we need to stop training stop_training False for callback in callback_list: if hasattr(callback, stop): if callback.stop(): stop_training True if stop_training: # Stop the training loop breakProgressLoggerCallbackdcase_util.keras.ProgressLoggerCallbackKeras回调用于存储tqdm进度条或日志记录界面的指标。 实现Keras回调API。 此回调与标准的ProgbarLogger Keras回调非常相似但它增加了对日志接口和外部度量在Keras训练过程之外计算的度量的支持。 类名功能ProgressLoggerCallback([manual_update...])Keras回调在日志界面中显示指标。ProgressPlotterCallbackdcase_util.keras.ProgressPlotterCallback,keras回调在培训过程中计划进度并将最终进展保存到数字中。 实现Keras回调API。类名功能ProgressPlotterCallback([epochs...])Keras回调在训练过程中绘制进度并将最终进度保存到图中。StopperCallbackdcase_util.keras.StopperCallbackkeras回调停止训练时改善没有在规定数量的时代看到。 实现Keras回调API。 此回调与标准的EarlyStopping Keras回调非常相似但它增加了对外部度量标准在Keras培训过程之外计算的度量的支持。 类名功能StopperCallback([epochsmanual_update...])Keras回调在特定时间段内没有发现改进时停止训练。StasherCallbackdcase_util.keras.StasherCallbackkeras回调监测训练过程并存储最佳模型。实现Keras回调API。 该回调与标准的ModelCheckpoint Keras回调非常相似但它增加了对外部度量在Keras培训过程之外计算的度量的支持。 类名功能StasherCallback([epochsmanual_update...])Keras回调监视训练过程并存储最佳模型。BaseCallbackdcase_util.keras.BaseCallback 类名功能BaseCallback([epochs, manual_update, ...])回调基础类7.3 Utilsdcase_util.keras.utils. * 类名功能setup_keras仅执行一次的修饰类8. Processors数据处理器类8.1 Processing chainProcessingChainItemdcase_util.processors.ProcessingChainItem类名功能ProcessingChainItem(\*args, \*\*kwargs)ProcessingChaindcase_util.processors.ProcessingChain类名功能ProcessingChain(\*args, \*\*kwargs)ProcessingChain.show_chain()显示链信息ProcessingChain.log_chain([level])记录链信息ProcessingChain.push_processor(processor_name)将处理器项目推送到链中。ProcessingChain.process([data])用处理链处理数据ProcessingChain.call_method(method_name[, ...])调用处理链项目中的类方法ProcessingChain.processor_exists(processor_name)检查处理器是否存在于链中ProcessingChain.processor_class_reference(...)处理器类的引用ProcessingChain.processor_class(...)初始化处理器类8.2 AudioAudioReadingProcessordcase_util.processors.AudioReadingProcessor类名功能AudioReadingProcessor([data, fs, ...])构造函数AudioReadingProcessor.process([data, ...])音频读取MonoAudioReadingProcessordcase_util.processors.MonoAudioReadingProcessor类名功能MonoAudioReadingProcessor([data, fs, …])构造函数MonoAudioReadingProcessor.process([data, …])音频读取8.3 DataAggregationProcessordcase_util.processors.AggregationProcessor类名功能AggregationProcessor([win_length_frames, ...])Data aggregation processorAggregationProcessor.process([data])Process featuresSequencingProcessordcase_util.processors.SequencingProcessor类名功能SequencingProcessor([frames, ...])Data sequencing processorSequencingProcessor.process([data])ProcessNormalizationProcessordcase_util.processors.NormalizationProcessor类名功能NormalizationProcessor([n, s1, s2, mean, std])Data normalizer to accumulate data statisticsNormalizationProcessor.process([data])Normalize feature matrix with internal statistics of the classRepositoryNormalizationProcessordcase_util.processors.RepositoryNormalizationProcessor类名功能RepositoryNormalizationProcessor([parameters])Data normalizer to accumulate data statistics inside repositoryRepositoryNormalizationProcessor.process([data])Normalize data repository with internal statisticsStackingProcessordcase_util.processors.StackingProcessor类名功能StackingProcessor([recipe, hop])Data stacking processorStackingProcessor.process([data])Vector creation based on recipeOneHotEncodingProcessordcase_util.processors.OneHotEncodingProcessor类名功能OneHotEncodingProcessor([label_list, ...])Event roll encoding processorOneHotEncodingProcessor.process([data, ...])Encode metadataManyHotEncodingProcessordcase_util.processors.ManyHotEncodingProcessor类名功能ManyHotEncodingProcessor([label_list, ...])Event roll encoding processorManyHotEncodingProcessor.process([data, ...])Encode metadataEventRollEncodingProcessordcase_util.processors.EventRollEncodingProcessor类名功能EventRollEncodingProcessor([label_list, ...])Event roll encoding processorEventRollEncodingProcessor.process([data])Encode metadata8.4 FeaturesRepositoryFeatureExtractorProcessordcase_util.processors.RepositoryFeatureExtractorProcessor类名功能RepositoryFeatureExtractorProcessor([parameters])构造器RepositoryFeatureExtractorProcessor.process([data])提取特征FeatureExtractorProcessordcase_util.processors.FeatureExtractorProcessor类名功能FeatureExtractorProcessor(\*args, \*\*kwargs)构造器FeatureExtractorProcessor.process([data])提取特征MelExtractorProcessorMel能量dcase_util.processors.MelExtractorProcessor类名功能MelExtractorProcessor([fs, ...])构造器MelExtractorProcessor.process([data])提取特征MfccStaticExtractorProcessorMFCCdcase_util.processors.MfccStaticExtractorProcessor类名功能MfccStaticExtractorProcessor([fs, ...])构造器MfccStaticExtractorProcessor.process([data])提取特征MfccDeltaExtractorProcessorMFCC一阶导dcase_util.processors.MfccDeltaExtractorProcessor类名功能MfccDeltaExtractorProcessor([fs, ...])构造器MfccDeltaExtractorProcessor.process([data])提取特征MfccAccelerationExtractorProcessorMFCC二阶导dcase_util.processors.MfccAccelerationExtractorProcessor类名功能MfccAccelerationExtractorProcessor([fs, ...])构造器MfccAccelerationExtractorProcessor.process([data])提取特征ZeroCrossingRateExtractorProcessor过零率dcase_util.processors.ZeroCrossingRateExtractorProcessor类名功能ZeroCrossingRateExtractorProcessor([fs, ...])构造器ZeroCrossingRateExtractorProcessor.process([data])提取特征RMSEnergyExtractorProcessor均方根能量dcase_util.processors.RMSEnergyExtractorProcessor类名功能RMSEnergyExtractorProcessor([fs, ...])构造器RMSEnergyExtractorProcessor.process([data])提取特征SpectralCentroidExtractorProcessor光谱质心dcase_util.processors.SpectralCentroidExtractorProcessor类名功能SpectralCentroidExtractorProcessor([fs, ...])构造器SpectralCentroidExtractorProcessor.process([data])提取特征8.5 MetadataMetadataReadingProcessordcase_util.processors.MetadataReadingProcessor 类名功能MetadataReadingProcessor(\*args, \*\*kwargs)构造器MetadataReadingProcessor.process([data, ...])读取元数据8.6 MixinProcessorMixindcase_util.processors.ProcessorMixin 类名功能ProcessorMixin(\*args, \*\*kwargs)数据处理链单元混合ProcessorMixin.process([data])处理数据ProcessorMixin.get_processing_chain_item()使用当前处理器数据获取处理链项目ProcessorMixin.push_processing_chain_item(...)推送加工链项目9. User interfacing用于轻型用户界面的实用程序类。 FancyLogger和FancyPrinter提供相同的API唯一不同的是FancyLogger将输出到日志系统FancyPrinter使用标准打印功能将输出打印到sys.stdout。 当需要以字符串形式输出时FancyStringifier可用于一般情况。 9.1 FancyLoggerdcase_util.ui.FancyLogger 使用日志记录时此类提供额外的格式。 如果在调用FancyLogger时Python日志记录尚未初始化则首先调用dcase_util.utils.setup_logging。 用法示例 12345678910111213141516171819202122ui dcase_util.ui.FancyLogger()ui.title(title)ui.section_header(section_header)ui.sub_header(sub_header)ui.foot(foot)ui.line(line, indent2)ui.line(line, indent4)ui.line(line, indent6)# Data row with field and valueui.data(data field, value, unit)# Horizontal separatorui.sep()# Tableui.table(cell_data[[1, 2, 3], [1, 2, 3]])# Faster way to create output tables without collecting data into one data structure.ui.row(Header1, Header2, widths[10,20], types[float2,str20])ui.row(-,-)ui.row(10.21231, String text)输出 1234567891011121314151617181920[I] title[I] section_header[I] [I] sub_header [I] foot[I][I] line[I] line[I] line[I] data field : value unit[I] [I] Col #0 Col #1[I] ------ ------[I] 1 1[I] 2 2[I] 3 3[I][I] Header1 | Header2 |[I] ------- | ----------------- |[I] 10.21 | String text |类名功能FancyLogger()Logger classFancyLogger.line([data, indent, level])Generic line loggerFancyLogger.row(\*args, \*\*kwargs)FancyLogger.title(text[, level])Title, logged at info levelFancyLogger.section_header(text[, indent, level])Section header, logged at info levelFancyLogger.sub_header([text, indent, level])Sub headerFancyLogger.foot([text, time, item_count, ...])Footer, logged at info levelFancyLogger.data([field, value, unit, ...])Data line loggerFancyLogger.sep([level, length, indent])Horizontal separator, logged at info levelFancyLogger.table([cell_data, ...])Data tableFancyLogger.info([text, indent])Info line loggerFancyLogger.debug([text, indent])Debug line loggerFancyLogger.error([text, indent])Error line logger9.2 FancyPrinterdcase_util.processors.FancyPrinter 该类向控制台提供统一格式的状态打印。 用例 12345678910111213141516171819202122ui dcase_util.ui.FancyPrinter()ui.title(title)ui.section_header(section_header)ui.sub_header(sub_header)ui.foot(foot)ui.line(line, indent2)ui.line(line, indent4)ui.line(line, indent6)# Data row with field and valueui.data(data field, value, unit)# Horizontal separatorui.sep()# Tableui.table(cell_data[[1, 2, 3], [1, 2, 3]])# Faster way to create output tables without collecting data into one data structure.ui.row(Header1, Header2, widths[10,20], types[float2,str20])ui.row(-,-)ui.row(10.21231, String text)输出 1234567891011121314151617181920titlesection_header sub_header foot line line line data field : value unitCol #0 Col #1------ ------ 1 1 2 2 3 3 Header1 | Header2 | ------- | ----------------- | 10.21 | String text |类名功能FancyPrinter([colors])Printer classFancyPrinter.line([data, indent, level])Generic line loggerFancyPrinter.row(\*args, \*\*kwargs)FancyPrinter.title(text[, level])Title, logged at info levelFancyPrinter.section_header(text[, indent, ...])Section header, logged at info levelFancyPrinter.sub_header([text, indent, level])Sub headerFancyPrinter.foot([text, time, item_count, ...])Footer, logged at info levelFancyPrinter.data([field, value, unit, ...])Data line loggerFancyPrinter.sep([level, length, indent])Horizontal separator, logged at info levelFancyPrinter.table([cell_data, ...])Data tableFancyPrinter.info([text, indent])Info line loggerFancyPrinter.debug([text, indent])Debug line loggerFancyPrinter.error([text, indent])Error line logger9.3 FancyStringifierdcase_util.processors.FancyStringifier 这个类可以用来产生统一格式的输出字符串。 类名功能FancyStringifier()Fancy UIFancyStringifier.title(text)TitleFancyStringifier.section_header(text[, indent])Section headerFancyStringifier.sub_header([text, indent])Sub headerFancyStringifier.foot([text, time, ...])FooterFancyStringifier.line([field, indent])LineFancyStringifier.formatted_value(value[, ...])Format value into string.FancyStringifier.data([field, value, unit, ...])Data lineFancyStringifier.sep([length, indent])Horizontal separatorFancyStringifier.table([cell_data, ...])Data tableFancyStringifier.row(\*args, \*\*kwargs)Table rowFancyStringifier.class_name(class_name)Class name10. Units单元函数与类10.1 General functiondcase_util.utils. * 类名功能get_class_inheritors(klass)得到从给定的类中继承的所有类get_byte_string(num_bytes[, show_bytes])根据语言环境和IEC二进制前缀输出字节数check_pkg_resources(package_requirement[, ...])is_int(value)is_float(value)SuppressStdoutAndStderrdcase_util.utils.SuppressStdoutAndStderr类名功能SuppressStdoutAndStderr()Context manager to suppress STDOUT and STDERRVectorRecipeParserdcase_util.utils.VectorRecipeParser类名功能VectorRecipeParser([delimiters, default_stream])10.2 Filedcase_util.utils. * 类名功能argument_file_exists(filename)参数文件检查器filelist_exists(filelist)检查列表中的所有文件是否存在posix_path(path)检查列表中的所有文件是否存在Pathdcase_util.utils.Path类名功能Path([path])路径的单元Path.posix([path])将路径转换为POSIX格式Path.posix_to_nt([path])将posix格式的路径转换为ntPath.file_list([path, recursive, ...])获取文件列表Path.exists([path])检查路径是否存在Path.file_count([path])给定路径下的文件数量包括子目录Path.size_bytes([path])给定路径下所有文件的总字节数Path.size_string([path, show_bytes])给定路径下的所有文件的总数据大小以可读形式返回Path.makedirs([path])创建给定的路径Path.create(paths)创建给定的路径ApplicationPathsdcase_util.utils.ApplicationPaths类名功能ApplicationPaths([parameter_container])应用程序路径的实用工具类根据参数散列自动生成路径ApplicationPaths.generate(path_base, structure)生成应用程序路径并将参数散列包含到路径中ApplicationPaths.directory_name(prefix, ...)生成目录名称ApplicationPaths.save_parameters_to_path(...)将参数保存到每个应用程序子目录ApplicationPaths.construct_path(path_parts)基于路径部分生成所有组合FileFormatdcase_util.utils.FileFormat类名功能FileFormatFileFormat.detect(filename[, ...])检测文件格式FileFormat.detect_based_on_filename(filename)基于文件名检测文件格式FileFormat.detect_based_on_content(filename)使用python-magic检测基于内容的文件格式。FileFormat.validate_label(label)根据此类已知的标签验证文件格式标签10.3 Hash类名功能get_parameter_hash(params)获取给定参数字典的唯一哈希字符串md5get_file_hash(filename)获取给定文件的唯一哈希字符串md510.4 Logging类名功能setup_logging修饰器类只允许执行一次DisableLoggerdcase_util.utils.DisableLogger类名功能DisableLogger10.5 Mathdcase_util.utils.SimpleMathStringEvaluator SimpleMathStringEvaluator类名功能SimpleMathStringEvaluator()简单的数学字符串评估器SimpleMathStringEvaluator.eval(string)评估字符串中的数学10.6 Timerdcase_util.utils.Timer 类名功能Timer()定时器类Timer.start()启动计时器Timer.stop()停止计时器Timer.elapsed()返回自启动计时器以来的经过时间以秒为单位Timer.get_string([elapsed])以字符串格式获取已用时间10.7 Validatordcase_util.utils.FieldValidator 类名功能FieldValidatorFieldValidator.process(field)测试字段FieldValidator.is_empty(field)测试空字段FieldValidator.is_number(field)测试数字字段FieldValidator.is_audiofile(field)测试音频字段FieldValidator.is_list(field)测试列表字段有效分隔符[;]FieldValidator.is_alpha(field[, length])测试长度为1的alpha字段10.8 Exampledcase_util.utils.Example 一些示例数据便于测试和辅导。 类名功能Example()教程示例文件Example.audio_filename()Example.acoustic_scene_audio_filename()Example.audio_container()Example.event_metadata_container([filename])Example.scene_metadata_container([filename])Example.tag_metadata_container([filename])Example.feature_container([filename])Example.feature_repository([filename])