| program(1.0) | |
| [buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3500.14.1"}, {"coremlc-version", "3500.32.1"}, {"coremltools-component-torch", "2.8.0"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "9.0b1"}})] | |
| { | |
| func main<ios17>(tensor<fp32, [?, 1, 160000]> audio) [FlexibleShapeInformation = tuple<tuple<tensor<string, []>, dict<tensor<string, []>, tensor<int32, [?]>>>, tuple<tensor<string, []>, dict<tensor<string, []>, dict<tensor<string, []>, tensor<int32, [?]>>>>>((("DefaultShapes", {{"audio", [1, 1, 160000]}}), ("EnumeratedShapes", {{"audio_1_1_10_1_160000_", {{"audio", [10, 1, 160000]}}}, {"audio_1_1_11_1_160000_", {{"audio", [11, 1, 160000]}}}, {"audio_1_1_12_1_160000_", {{"audio", [12, 1, 160000]}}}, {"audio_1_1_13_1_160000_", {{"audio", [13, 1, 160000]}}}, {"audio_1_1_14_1_160000_", {{"audio", [14, 1, 160000]}}}, {"audio_1_1_15_1_160000_", {{"audio", [15, 1, 160000]}}}, {"audio_1_1_16_1_160000_", {{"audio", [16, 1, 160000]}}}, {"audio_1_1_17_1_160000_", {{"audio", [17, 1, 160000]}}}, {"audio_1_1_18_1_160000_", {{"audio", [18, 1, 160000]}}}, {"audio_1_1_19_1_160000_", {{"audio", [19, 1, 160000]}}}, {"audio_1_1_1_1_160000_", {{"audio", [1, 1, 160000]}}}, {"audio_1_1_20_1_160000_", {{"audio", [20, 1, 160000]}}}, {"audio_1_1_21_1_160000_", {{"audio", [21, 1, 160000]}}}, {"audio_1_1_22_1_160000_", {{"audio", [22, 1, 160000]}}}, {"audio_1_1_23_1_160000_", {{"audio", [23, 1, 160000]}}}, {"audio_1_1_24_1_160000_", {{"audio", [24, 1, 160000]}}}, {"audio_1_1_25_1_160000_", {{"audio", [25, 1, 160000]}}}, {"audio_1_1_26_1_160000_", {{"audio", [26, 1, 160000]}}}, {"audio_1_1_27_1_160000_", {{"audio", [27, 1, 160000]}}}, {"audio_1_1_28_1_160000_", {{"audio", [28, 1, 160000]}}}, {"audio_1_1_29_1_160000_", {{"audio", [29, 1, 160000]}}}, {"audio_1_1_2_1_160000_", {{"audio", [2, 1, 160000]}}}, {"audio_1_1_30_1_160000_", {{"audio", [30, 1, 160000]}}}, {"audio_1_1_31_1_160000_", {{"audio", [31, 1, 160000]}}}, {"audio_1_1_32_1_160000_", {{"audio", [32, 1, 160000]}}}, {"audio_1_1_3_1_160000_", {{"audio", [3, 1, 160000]}}}, {"audio_1_1_4_1_160000_", {{"audio", [4, 1, 160000]}}}, {"audio_1_1_5_1_160000_", {{"audio", [5, 1, 160000]}}}, {"audio_1_1_6_1_160000_", {{"audio", [6, 1, 160000]}}}, {"audio_1_1_7_1_160000_", {{"audio", [7, 1, 160000]}}}, {"audio_1_1_8_1_160000_", {{"audio", [8, 1, 160000]}}}, {"audio_1_1_9_1_160000_", {{"audio", [9, 1, 160000]}}}})))] { | |
| tensor<fp32, [80, 257, 1]> _fbank_mel_weight = const()[name = tensor<string, []>("_fbank_mel_weight"), val = tensor<fp32, [80, 257, 1]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))]; | |
| tensor<fp32, [257, 1, 512]> _fbank_dft_imag_weight = const()[name = tensor<string, []>("_fbank_dft_imag_weight"), val = tensor<fp32, [257, 1, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(82368)))]; | |
| tensor<fp32, [257, 1, 512]> _fbank_dft_real_weight = const()[name = tensor<string, []>("_fbank_dft_real_weight"), val = tensor<fp32, [257, 1, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(608768)))]; | |
| tensor<fp32, [1, 400]> _fbank_window = const()[name = tensor<string, []>("_fbank_window"), val = tensor<fp32, [1, 400]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1135168)))]; | |
| tensor<fp32, []> _fbank_eps = const()[name = tensor<string, []>("_fbank_eps"), val = tensor<fp32, []>(0x1.0c6f7ap-20)]; | |
| tensor<fp32, [400, 1, 400]> _fbank_frame_kernel = const()[name = tensor<string, []>("_fbank_frame_kernel"), val = tensor<fp32, [400, 1, 400]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1136832)))]; | |
| tensor<fp32, []> var_3_promoted = const()[name = tensor<string, []>("op_3_promoted"), val = tensor<fp32, []>(0x1p+15)]; | |
| tensor<fp32, [?, 1, 160000]> waveforms_3 = mul(x = audio, y = var_3_promoted)[name = tensor<string, []>("waveforms_3")]; | |
| tensor<string, []> frames_1_pad_type_0 = const()[name = tensor<string, []>("frames_1_pad_type_0"), val = tensor<string, []>("valid")]; | |
| tensor<int32, [1]> frames_1_strides_0 = const()[name = tensor<string, []>("frames_1_strides_0"), val = tensor<int32, [1]>([160])]; | |
| tensor<int32, [2]> frames_1_pad_0 = const()[name = tensor<string, []>("frames_1_pad_0"), val = tensor<int32, [2]>([0, 0])]; | |
| tensor<int32, [1]> frames_1_dilations_0 = const()[name = tensor<string, []>("frames_1_dilations_0"), val = tensor<int32, [1]>([1])]; | |
| tensor<int32, []> frames_1_groups_0 = const()[name = tensor<string, []>("frames_1_groups_0"), val = tensor<int32, []>(1)]; | |
| tensor<fp32, [?, 400, 998]> frames_1 = conv(dilations = frames_1_dilations_0, groups = frames_1_groups_0, pad = frames_1_pad_0, pad_type = frames_1_pad_type_0, strides = frames_1_strides_0, weight = _fbank_frame_kernel, x = waveforms_3)[name = tensor<string, []>("frames_1")]; | |
| tensor<int32, [3]> frames_3_perm_0 = const()[name = tensor<string, []>("frames_3_perm_0"), val = tensor<int32, [3]>([0, 2, 1])]; | |
| tensor<int32, [2]> concat_0x = const()[name = tensor<string, []>("concat_0x"), val = tensor<int32, [2]>([-1, 400])]; | |
| tensor<fp32, [?, 998, 400]> frames_3 = transpose(perm = frames_3_perm_0, x = frames_1)[name = tensor<string, []>("transpose_1")]; | |
| tensor<fp32, [?, 400]> frames_5 = reshape(shape = concat_0x, x = frames_3)[name = tensor<string, []>("frames_5")]; | |
| tensor<int32, [1]> var_53_axes_0 = const()[name = tensor<string, []>("op_53_axes_0"), val = tensor<int32, [1]>([1])]; | |
| tensor<bool, []> var_53_keep_dims_0 = const()[name = tensor<string, []>("op_53_keep_dims_0"), val = tensor<bool, []>(true)]; | |
| tensor<fp32, [?, 1]> var_53 = reduce_mean(axes = var_53_axes_0, keep_dims = var_53_keep_dims_0, x = frames_5)[name = tensor<string, []>("op_53")]; | |
| tensor<fp32, [?, 400]> frames_7 = sub(x = frames_5, y = var_53)[name = tensor<string, []>("frames_7")]; | |
| tensor<int32, [1]> input_1_axes_0 = const()[name = tensor<string, []>("input_1_axes_0"), val = tensor<int32, [1]>([1])]; | |
| tensor<fp32, [?, 1, 400]> input_1 = expand_dims(axes = input_1_axes_0, x = frames_7)[name = tensor<string, []>("input_1")]; | |
| tensor<fp32, []> const_0 = const()[name = tensor<string, []>("const_0"), val = tensor<fp32, []>(0x0p+0)]; | |
| tensor<int32, [6]> var_57_pad_0 = const()[name = tensor<string, []>("op_57_pad_0"), val = tensor<int32, [6]>([0, 0, 0, 0, 1, 0])]; | |
| tensor<string, []> var_57_mode_0 = const()[name = tensor<string, []>("op_57_mode_0"), val = tensor<string, []>("replicate")]; | |
| tensor<fp32, [?, 1, 401]> var_57 = pad(constant_val = const_0, mode = var_57_mode_0, pad = var_57_pad_0, x = input_1)[name = tensor<string, []>("op_57")]; | |
| tensor<int32, [1]> padded_axes_0 = const()[name = tensor<string, []>("padded_axes_0"), val = tensor<int32, [1]>([1])]; | |
| tensor<fp32, [?, 401]> padded = squeeze(axes = padded_axes_0, x = var_57)[name = tensor<string, []>("padded")]; | |
| tensor<int32, [2]> var_60_begin_0 = const()[name = tensor<string, []>("op_60_begin_0"), val = tensor<int32, [2]>([0, 0])]; | |
| tensor<int32, [2]> var_60_end_0 = const()[name = tensor<string, []>("op_60_end_0"), val = tensor<int32, [2]>([0, 400])]; | |
| tensor<bool, [2]> var_60_end_mask_0 = const()[name = tensor<string, []>("op_60_end_mask_0"), val = tensor<bool, [2]>([true, false])]; | |
| tensor<fp32, [?, 400]> var_60 = slice_by_index(begin = var_60_begin_0, end = var_60_end_0, end_mask = var_60_end_mask_0, x = padded)[name = tensor<string, []>("op_60")]; | |
| tensor<fp32, []> var_61 = const()[name = tensor<string, []>("op_61"), val = tensor<fp32, []>(0x1.f0a3d8p-1)]; | |
| tensor<fp32, [?, 400]> var_62 = mul(x = var_60, y = var_61)[name = tensor<string, []>("op_62")]; | |
| tensor<fp32, [?, 400]> frames_9 = sub(x = frames_7, y = var_62)[name = tensor<string, []>("frames_9")]; | |
| tensor<fp32, [?, 400]> frames_11 = mul(x = frames_9, y = _fbank_window)[name = tensor<string, []>("frames_11")]; | |
| tensor<int32, [1]> input_axes_0 = const()[name = tensor<string, []>("input_axes_0"), val = tensor<int32, [1]>([1])]; | |
| tensor<fp32, [?, 1, 400]> input = expand_dims(axes = input_axes_0, x = frames_11)[name = tensor<string, []>("input")]; | |
| tensor<fp32, []> const_1 = const()[name = tensor<string, []>("const_1"), val = tensor<fp32, []>(0x0p+0)]; | |
| tensor<int32, [6]> var_67_pad_0 = const()[name = tensor<string, []>("op_67_pad_0"), val = tensor<int32, [6]>([0, 0, 0, 0, 0, 112])]; | |
| tensor<string, []> var_67_mode_0 = const()[name = tensor<string, []>("op_67_mode_0"), val = tensor<string, []>("constant")]; | |
| tensor<fp32, [?, 1, 512]> var_67 = pad(constant_val = const_1, mode = var_67_mode_0, pad = var_67_pad_0, x = input)[name = tensor<string, []>("op_67")]; | |
| tensor<string, []> var_74_pad_type_0 = const()[name = tensor<string, []>("op_74_pad_type_0"), val = tensor<string, []>("valid")]; | |
| tensor<int32, [1]> var_74_strides_0 = const()[name = tensor<string, []>("op_74_strides_0"), val = tensor<int32, [1]>([1])]; | |
| tensor<int32, [2]> var_74_pad_0 = const()[name = tensor<string, []>("op_74_pad_0"), val = tensor<int32, [2]>([0, 0])]; | |
| tensor<int32, [1]> var_74_dilations_0 = const()[name = tensor<string, []>("op_74_dilations_0"), val = tensor<int32, [1]>([1])]; | |
| tensor<int32, []> var_74_groups_0 = const()[name = tensor<string, []>("op_74_groups_0"), val = tensor<int32, []>(1)]; | |
| tensor<fp32, [?, 257, 1]> var_74 = conv(dilations = var_74_dilations_0, groups = var_74_groups_0, pad = var_74_pad_0, pad_type = var_74_pad_type_0, strides = var_74_strides_0, weight = _fbank_dft_real_weight, x = var_67)[name = tensor<string, []>("op_74")]; | |
| tensor<int32, [1]> real_axes_0 = const()[name = tensor<string, []>("real_axes_0"), val = tensor<int32, [1]>([-1])]; | |
| tensor<fp32, [?, 257]> real = squeeze(axes = real_axes_0, x = var_74)[name = tensor<string, []>("real")]; | |
| tensor<string, []> var_80_pad_type_0 = const()[name = tensor<string, []>("op_80_pad_type_0"), val = tensor<string, []>("valid")]; | |
| tensor<int32, [1]> var_80_strides_0 = const()[name = tensor<string, []>("op_80_strides_0"), val = tensor<int32, [1]>([1])]; | |
| tensor<int32, [2]> var_80_pad_0 = const()[name = tensor<string, []>("op_80_pad_0"), val = tensor<int32, [2]>([0, 0])]; | |
| tensor<int32, [1]> var_80_dilations_0 = const()[name = tensor<string, []>("op_80_dilations_0"), val = tensor<int32, [1]>([1])]; | |
| tensor<int32, []> var_80_groups_0 = const()[name = tensor<string, []>("op_80_groups_0"), val = tensor<int32, []>(1)]; | |
| tensor<fp32, [?, 257, 1]> var_80 = conv(dilations = var_80_dilations_0, groups = var_80_groups_0, pad = var_80_pad_0, pad_type = var_80_pad_type_0, strides = var_80_strides_0, weight = _fbank_dft_imag_weight, x = var_67)[name = tensor<string, []>("op_80")]; | |
| tensor<int32, [1]> imag_axes_0 = const()[name = tensor<string, []>("imag_axes_0"), val = tensor<int32, [1]>([-1])]; | |
| tensor<fp32, [?, 257]> imag = squeeze(axes = imag_axes_0, x = var_80)[name = tensor<string, []>("imag")]; | |
| tensor<fp32, []> var_22_promoted = const()[name = tensor<string, []>("op_22_promoted"), val = tensor<fp32, []>(0x1p+1)]; | |
| tensor<fp32, [?, 257]> var_82 = pow(x = real, y = var_22_promoted)[name = tensor<string, []>("op_82")]; | |
| tensor<fp32, []> var_22_promoted_1 = const()[name = tensor<string, []>("op_22_promoted_1"), val = tensor<fp32, []>(0x1p+1)]; | |
| tensor<fp32, [?, 257]> var_83 = pow(x = imag, y = var_22_promoted_1)[name = tensor<string, []>("op_83")]; | |
| tensor<fp32, [?, 257]> power = add(x = var_82, y = var_83)[name = tensor<string, []>("power")]; | |
| tensor<int32, [1]> var_85_axes_0 = const()[name = tensor<string, []>("op_85_axes_0"), val = tensor<int32, [1]>([-1])]; | |
| tensor<fp32, [?, 257, 1]> var_85 = expand_dims(axes = var_85_axes_0, x = power)[name = tensor<string, []>("op_85")]; | |
| tensor<string, []> var_90_pad_type_0 = const()[name = tensor<string, []>("op_90_pad_type_0"), val = tensor<string, []>("valid")]; | |
| tensor<int32, [1]> var_90_strides_0 = const()[name = tensor<string, []>("op_90_strides_0"), val = tensor<int32, [1]>([1])]; | |
| tensor<int32, [2]> var_90_pad_0 = const()[name = tensor<string, []>("op_90_pad_0"), val = tensor<int32, [2]>([0, 0])]; | |
| tensor<int32, [1]> var_90_dilations_0 = const()[name = tensor<string, []>("op_90_dilations_0"), val = tensor<int32, [1]>([1])]; | |
| tensor<int32, []> var_90_groups_0 = const()[name = tensor<string, []>("op_90_groups_0"), val = tensor<int32, []>(1)]; | |
| tensor<fp32, [?, 80, 1]> var_90 = conv(dilations = var_90_dilations_0, groups = var_90_groups_0, pad = var_90_pad_0, pad_type = var_90_pad_type_0, strides = var_90_strides_0, weight = _fbank_mel_weight, x = var_85)[name = tensor<string, []>("op_90")]; | |
| tensor<int32, [1]> mel_1_axes_0 = const()[name = tensor<string, []>("mel_1_axes_0"), val = tensor<int32, [1]>([-1])]; | |
| tensor<fp32, [?, 80]> mel_1 = squeeze(axes = mel_1_axes_0, x = var_90)[name = tensor<string, []>("mel_1")]; | |
| tensor<fp32, [?, 80]> mel_3 = add(x = mel_1, y = _fbank_eps)[name = tensor<string, []>("mel_3")]; | |
| tensor<fp32, []> const_2 = const()[name = tensor<string, []>("const_2"), val = tensor<fp32, []>(0x1.fffffep+127)]; | |
| tensor<fp32, [?, 80]> clip_0 = clip(alpha = _fbank_eps, beta = const_2, x = mel_3)[name = tensor<string, []>("clip_0")]; | |
| tensor<fp32, []> mel_epsilon_0 = const()[name = tensor<string, []>("mel_epsilon_0"), val = tensor<fp32, []>(0x1p-149)]; | |
| tensor<fp32, [?, 80]> mel = log(epsilon = mel_epsilon_0, x = clip_0)[name = tensor<string, []>("mel")]; | |
| tensor<int32, [3]> concat_1x = const()[name = tensor<string, []>("concat_1x"), val = tensor<int32, [3]>([-1, 998, 80])]; | |
| tensor<fp32, [?, 998, 80]> var_96 = reshape(shape = concat_1x, x = mel)[name = tensor<string, []>("op_96")]; | |
| tensor<int32, [1]> centered_axes_0 = const()[name = tensor<string, []>("centered_axes_0"), val = tensor<int32, [1]>([1])]; | |
| tensor<bool, []> centered_keep_dims_0 = const()[name = tensor<string, []>("centered_keep_dims_0"), val = tensor<bool, []>(true)]; | |
| tensor<fp32, [?, 1, 80]> centered = reduce_mean(axes = centered_axes_0, keep_dims = centered_keep_dims_0, x = var_96)[name = tensor<string, []>("centered")]; | |
| tensor<fp32, [?, 998, 80]> features = sub(x = var_96, y = centered)[name = tensor<string, []>("features")]; | |
| tensor<int32, [3]> var_115 = const()[name = tensor<string, []>("op_115"), val = tensor<int32, [3]>([0, 2, 1])]; | |
| tensor<int32, [1]> var_118_axes_0 = const()[name = tensor<string, []>("op_118_axes_0"), val = tensor<int32, [1]>([1])]; | |
| tensor<fp32, [?, 80, 998]> var_116 = transpose(perm = var_115, x = features)[name = tensor<string, []>("transpose_0")]; | |
| tensor<fp32, [?, 1, 80, 998]> fbank_features = expand_dims(axes = var_118_axes_0, x = var_116)[name = tensor<string, []>("op_118")]; | |
| } -> (fbank_features); | |
| } |