From 871da0bf456910f2c6facf3fa9c786ba82bb253e Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Mon, 7 Apr 2025 10:22:11 +0200 Subject: [PATCH 01/49] vad : add initial Voice Activity Detection (VAD) support This commit add support for Voice Activity Detection (VAD). When enabled this feature will process the audio input and detect speech segments. This information is then used to reduce the number of samples that need to be processed by whisper_full. This initial support is based on the Silero VAD model which needs to be converted to GGML format: ```console $ (venv) pip install silero-vad $ (venv) $ python models/convert-silero-vad-to-ggml.py --output models/silero.bin Saving GGML Silero-VAD model to models/silero-v5.1.2-ggml.bin ``` There is test the tests the VAD support in isolation: ```console $ cmake --build build --target test-vad && \ ctest -R ^test-vad$ --test-dir build -C Debug --output-on-failure -VV ``` And one that tests VAD in combination with whisper_full: ```console $ cmake --build build --target test-vad-full && \ ctest -R test-vad-full --test-dir build -C Debug --output-on-failure -VV ``` Resolves: https://github.com/ggml-org/whisper.cpp/issues/3003 --- include/whisper.h | 82 ++ models/convert-silero-vad-to-ggml.py | 196 ++++ models/for-tests-silero-v5.1.2-ggml.bin | Bin 0 -> 885098 bytes src/whisper-arch.h | 56 + src/whisper.cpp | 1300 ++++++++++++++++++++++- tests/CMakeLists.txt | 18 + tests/test-vad-full.cpp | 52 + tests/test-vad.cpp | 88 ++ 8 files changed, 1787 insertions(+), 5 deletions(-) create mode 100644 models/convert-silero-vad-to-ggml.py create mode 100644 models/for-tests-silero-v5.1.2-ggml.bin create mode 100644 tests/test-vad-full.cpp create mode 100644 tests/test-vad.cpp diff --git a/include/whisper.h b/include/whisper.h index 1e1375033ad..dce75e1b731 100644 --- a/include/whisper.h +++ b/include/whisper.h @@ -570,6 +570,17 @@ extern "C" { size_t n_grammar_rules; size_t i_start_rule; float grammar_penalty; + + // Voice Activity Detection (VAD) params + bool vad; // Enable VAD + const char * vad_model_path; // Path to VAD model + float vad_threshold; // Probability threshold to consider as speech. + int vad_min_speech_duration_ms; // Min duration for a valid speech segment. + int vad_min_silence_duration_ms; // Min silence duration to consider speech as ended. + float vad_max_speech_duration_s; // Max duration of a speech segment before forcing a break. + int vad_speech_pad_ms; // Padding added before and after speech segments. + int vad_window_size_samples; // Number of audio samples in each probability window. + float vad_samples_overlap; // Overlap in seconds when copying audio samples from speech segment. }; // NOTE: this function allocates memory, and it is the responsibility of the caller to free the pointer - see whisper_free_context_params & whisper_free_params() @@ -652,6 +663,77 @@ extern "C" { WHISPER_API float whisper_full_get_token_p (struct whisper_context * ctx, int i_segment, int i_token); WHISPER_API float whisper_full_get_token_p_from_state(struct whisper_state * state, int i_segment, int i_token); + // Voice Activity Detection (VAD) + struct whisper_vad_context; + struct whisper_vad_state; + + struct whisper_vad_params { + float threshold; // Probability threshold to consider as speech. + int min_speech_duration_ms; // Min duration for a valid speech segment. + int min_silence_duration_ms; // Min silence duration to consider speech as ended. + float max_speech_duration_s; // Max duration of a speech segment before forcing a new segment. + int speech_pad_ms; // Padding added before and after speech segments. + int window_size_samples; // Number of audio samples in each probability window. + float samples_overlap; // Overlap in seconds when copying audio samples from speech segment. + }; + WHISPER_API struct whisper_vad_params whisper_vad_default_params(void); + WHISPER_API struct whisper_vad_params whisper_vad_params_from(struct whisper_full_params wparams); + + struct whisper_vad_context_params { + int n_threads; // The number of threads to use for processing. + bool use_gpu; + int gpu_device; // CUDA device + }; + WHISPER_API struct whisper_vad_context_params whisper_vad_default_context_params(void); + + WHISPER_API struct whisper_vad_state * whisper_vad_init_state(struct whisper_vad_context * ctx); + + WHISPER_API struct whisper_vad_context * whisper_vad_init_from_file_with_params( + const char * path_model, + const struct whisper_vad_context_params params); + + WHISPER_API struct whisper_vad_context * whisper_vad_init_from_file_with_params_no_state( + const char * path_model, + const struct whisper_vad_context_params params); + + WHISPER_API struct whisper_vad_context * whisper_vad_init_with_params_no_state(struct whisper_model_loader * loader, + struct whisper_vad_context_params params); + + struct whisper_vad_speech { + int n_probs; + float * probs; + }; + + WHISPER_API struct whisper_vad_speech whisper_vad_detect_speech( + struct whisper_vad_context * vctx, + const float * samples, int n_samples); + + struct whisper_vad_segment { + float start; // Start time in seconds + float end; // End time in seconds + }; + + struct whisper_vad_timestamps { + int n_segments; + struct whisper_vad_segment * segments; + }; + + WHISPER_API struct whisper_vad_timestamps whisper_vad_detect_speech_timestamps( + struct whisper_vad_context * vctx, + struct whisper_vad_params params, + const float * samples, int n_samples); + + WHISPER_API struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( + struct whisper_vad_context * vctx, + struct whisper_vad_params params, + struct whisper_vad_speech * probs); + + WHISPER_API void whisper_vad_free (struct whisper_vad_context * ctx); + WHISPER_API void whisper_vad_free_state (struct whisper_vad_state * state); + WHISPER_API void whisper_vad_free_params (struct whisper_vad_params * params); + WHISPER_API void whisper_vad_free_speech (struct whisper_vad_speech * speech); + WHISPER_API void whisper_vad_free_timestamps(struct whisper_vad_timestamps * timestamps); + //////////////////////////////////////////////////////////////////////////// // Temporary helpers needed for exposing ggml interface diff --git a/models/convert-silero-vad-to-ggml.py b/models/convert-silero-vad-to-ggml.py new file mode 100644 index 00000000000..7caed2357b3 --- /dev/null +++ b/models/convert-silero-vad-to-ggml.py @@ -0,0 +1,196 @@ +import os +import struct +import argparse +import torch +import numpy as np +from silero_vad import load_silero_vad, __version__ as silero_version + +def convert_silero_vad(output_path, print_tensors=True): + model = load_silero_vad() + state_dict = model.state_dict() + + # Clean up state dict keys - filter out 8k model + cleaned_dict = {} + for key, value in state_dict.items(): + # Skip 8k model + if "_8k" not in key: + clean_key = key + if not key.startswith("_model."): + clean_key = "_model." + key + cleaned_dict[clean_key] = value + + base, ext = os.path.splitext(output_path) + output_file = f"{base}-v{silero_version}-ggml{ext}" + print(f"Saving GGML Silero-VAD model to {output_file}") + + print("\nTensor info for debugging:") + for key, tensor in cleaned_dict.items(): + print(f" - {key}: {tensor.shape} ({tensor.dtype})") + print() + + with open(output_file, "wb") as fout: + # Write magic and version + fout.write(struct.pack("i", 0x67676d6c)) + + model_type = "silero-16k" + str_len = len(model_type) + fout.write(struct.pack("i", str_len)) + fout.write(model_type.encode('utf-8')) + + version_parts = silero_version.split('.') + major, minor, patch = map(int, version_parts) + print(f"Version: {major}.{minor}.{patch}") + fout.write(struct.pack("i", major)) + fout.write(struct.pack("i", minor)) + fout.write(struct.pack("i", patch)) + + # Write model architecture parameters + window_size = 512 + fout.write(struct.pack("i", window_size)) + context_size = 64 + fout.write(struct.pack("i", context_size)) + + n_encoder_layers = 4 + fout.write(struct.pack("i", n_encoder_layers)) + + # Write encoder dimensions + input_channels = 129 + encoder_in_channels = [input_channels, 128, 64, 64] + encoder_out_channels = [128, 64, 64, 128] + kernel_size = 3 + + for i in range(n_encoder_layers): + fout.write(struct.pack("i", encoder_in_channels[i])) + fout.write(struct.pack("i", encoder_out_channels[i])) + fout.write(struct.pack("i", kernel_size)) + + # Write LSTM dimensions + lstm_input_size = 128 + lstm_hidden_size = 128 + fout.write(struct.pack("i", lstm_input_size)) + fout.write(struct.pack("i", lstm_hidden_size)) + + # Write final conv dimensions + final_conv_in = 128 + final_conv_out = 1 + fout.write(struct.pack("i", final_conv_in)) + fout.write(struct.pack("i", final_conv_out)) + + # Define tensor keys to write + tensor_keys = [] + + # Encoder weights + for i in range(n_encoder_layers): + weight_key = f"_model.encoder.{i}.reparam_conv.weight" + bias_key = f"_model.encoder.{i}.reparam_conv.bias" + if weight_key in cleaned_dict and bias_key in cleaned_dict: + tensor_keys.append(weight_key) + tensor_keys.append(bias_key) + + # LSTM weights + lstm_keys = [ + "_model.decoder.rnn.weight_ih", + "_model.decoder.rnn.weight_hh", + "_model.decoder.rnn.bias_ih", + "_model.decoder.rnn.bias_hh" + ] + tensor_keys.extend([k for k in lstm_keys if k in cleaned_dict]) + + # Final conv weights + final_keys = [ + "_model.decoder.decoder.2.weight", + "_model.decoder.decoder.2.bias" + ] + tensor_keys.extend([k for k in final_keys if k in cleaned_dict]) + + # STFT basis - add this last + stft_tensor = "_model.stft.forward_basis_buffer" + tensor_keys.append(stft_tensor) + + print(f"Writing {len(tensor_keys)} tensors:") + for key in tensor_keys: + if key in cleaned_dict: + print(f" - {key}: {cleaned_dict[key].shape}") + else: + print(f" - {key}: MISSING") + + # Process each tensor + for key in tensor_keys: + if key not in cleaned_dict: + print(f"Warning: Missing tensor {key}, skipping") + continue + + tensor = cleaned_dict[key] + + # Special handling for STFT tensor + if key == "_model.stft.forward_basis_buffer": + # Get the original numpy array without squeezing + data = tensor.detach().cpu().numpy() + # Ensure it has the expected shape + print(f"STFT tensor original shape: {data.shape}") + n_dims = 3 + tensor_shape = [data.shape[0], data.shape[1], data.shape[2]] + is_conv_weight = True + else: + # For other tensors, we can use standard processing + data = tensor.detach().cpu().squeeze().numpy() + tensor_shape = list(data.shape) + + # Ensure we have at most 4 dimensions for GGML + n_dims = min(len(tensor_shape), 4) + + # Reverse dimensions for GGML + tensor_shape = tensor_shape[:n_dims] + tensor_shape.reverse() + + # Check if this is a convolution weight tensor + is_conv_weight = "weight" in key and ("encoder" in key or "_model.decoder.decoder.2" in key) + + # Convert to float16 for convolution weights + if is_conv_weight: + data = data.astype(np.float16) + ftype = 1 # float16 + else: + ftype = 0 # float32 + + # Debug printing of tensor info + print(f"\nWriting tensor: {key}") + print(f" Original shape: {tensor.shape}") + print(f" Processed shape: {data.shape}") + print(f" GGML dimensions: {n_dims}") + print(f" GGML shape: {tensor_shape}") + print(f" Type: {'float16' if ftype == 1 else 'float32'}") + + # Convert tensor name to bytes + name_bytes = key.encode('utf-8') + name_length = len(name_bytes) + + # Write tensor header + fout.write(struct.pack("i", n_dims)) + fout.write(struct.pack("i", name_length)) + fout.write(struct.pack("i", ftype)) + + # Write tensor dimensions + for i in range(n_dims): + size = tensor_shape[i] if i < len(tensor_shape) else 1 + fout.write(struct.pack("i", size)) + print(f" Writing dimension {i}: {size}") + + # Write tensor name + fout.write(name_bytes) + + # Write tensor data + data.tofile(fout) + + print(f" Wrote {data.size * (2 if ftype==1 else 4)} bytes") + + print(f"\nDone! Model has been converted to GGML format: {output_file}") + print(f"File size: {os.path.getsize(output_file)} bytes") + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Convert Silero-VAD PyTorch model to GGML format") + parser.add_argument("--output", type=str, required=True, help="Path to output GGML model file") + parser.add_argument("--print-tensors", action="store_true", help="Print tensor values", default=True) + args = parser.parse_args() + + convert_silero_vad(args.output, args.print_tensors) diff --git a/models/for-tests-silero-v5.1.2-ggml.bin b/models/for-tests-silero-v5.1.2-ggml.bin new file mode 100644 index 0000000000000000000000000000000000000000..5988dc1d14927b0a3dac30d7221d3ce5a79cb275 GIT binary patch literal 885098 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 z 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ℜDkdFAP)s-mr4PT-(68K{*!vC&%U8I zBl0duJ3u(kM>L&oc@JhDl82EJN_*HzyhFcqYkNo1K`mSs%}=?}C-cA1<|D>r;jUqF z-A;`S-Qa@mU#@_U%U%*xVFd47lX%~5wOB832xAI1^w1R}0T{TzkP5AP1G>pAsOq0c zgxieBx!bp@w|ME{cwar8F!?Dk6N@l;V=H_cjv;<3OW`;#pIGpV;M@KN;2RAQVKD*r z$_^E>wZ)gsKU0jBbC;7lW%}#^laDy8>&1+A1k#%le#}gx+4Sx03GCa2rgUlJC_kg) zA-50TgxUuF$n@CqmhX~>vA(&OoWt=-9$Uk=w~;V-?Ka$;UWtWuk8--1CG%4p0ZRYpiM3X^WE!fnFi z#LRpSF_ioVrFo;2m3x6#UtA&!ZTpC&g)Zpqh=MW07qHZ7JL_#c8wMsgQ@hj*a@U{| z3#WO&Q+Q29O0uZ`j0niwmqprFXE5?B-oSyTY*6{WiDO$eLd0kB@On?_o@5 zTmB|nkD0&(&J!Cm^)}^>64g^1_x=uC+`3Mr37hM7)<6mJ;$x*Gtr?y5VL)@&;ZAss1UxK%0^|u)4Jz$TfiL% z|27$GUtObq>_NKo&Q5q_+=Y2(62NrxAuJ8vN1CpjhKd97yu&S({EdOlpp(=`iXyMT z=gXm_&4cr)J`Le*+{@tYh5+(sj~k;uREM>f*21QeC}y8_9%jc2^Z(hL!ko-4IAQfu z7@A!TuR1z-;r%~of9^&YpHmHBY(aN-OvU5de(=kDe?V65Qhr9oO}>@06;I`SA$=e^ zOdPDDiPyVr%z6LI#Ka)iYRQgB4EtG)o2R7Vpx_63(t3d48ZJXr>diK+FSJ${pUNIR zn8`WAlTq!!EqHV*lJE9OfU$VKgKDnRf~`8`v{-gAseiE_hU7Cz<3c_*Ds%VlhBvU? zS&Hp;^JPtjtl?Zz8L1goXBO=Uz|>0*L49jpt*YxC`XM2kY|E2keG7~jQ~d)_fA<~k z@Scz2Pz6o9wc&_mJ6xLYfVV%triw=g`1X^2Q0c66y3jw3@E*SB&kGY_Tw?R+!lQHG znWi=ST&Nb-1MkBR&07qxMYh_@I;9^}uWvpGL(Q;!12aa;)f-HV{;WrnrE z4=JK)`v6xwiGcwS)wjIN?d(NZk?3+bza|Kp zH!g>8yLD*W{0cYb8zRbdQ1w+SL92Ktl`Q+tyP)}s%b930T$q%`U*DHgZIUR*Ik@Kj2nVLa(@)x@90G+o~qAOeffq*v&*n+M;CA7-x~O({EzFX ztp>&@6nvr-_%BvQp$7MK`(srYZ;^ZWJ?0}MCLe}ie?d$zJV#8X*}%JJA4zxXFvkMW z!2@|EaLa}3%?Jb$kY&kOxF>IbuSLuc-yjz^{3bVA_mcdnkLa?DYglf=@#r>7k%EkR z{?qY^=w~d&dcQb}*NuJQuVy@~yAgx#jW$s0;sO>)+wk|?ajN`Th2bAIVoE(WVyM|v z=D!|0rb5$zk+Ob+1y7FEo{%g7^_3f;Jur<%$F=kAht|@A@g{hs?;Ms*-$Z5!Cy~%n z22(6dVN67XDbEzdGq(rn>5&OwH?^BI{!(Ck$xRx(K?mR8x{qaX-bBS`BKvw~3VOWY znz&6L$@h0}2)}<#JO3%UnT@^SLm!f1(2=Z4?Vxw%zXovJx+;(0EZDZ%b zKZZy7JL}NNvkuCCVXs#drVQU9$#Q3T-%pm%s{V(xOV<#cIN#$29R@1L zqq5hr%SfYhvpFircJLlo&Vq1{BBm~? z1h$k>DZ!R7EXQ-gPKnJ#|I^g)L*S6m(}MclRz5~+L>JpH7A zD(txnHWU63buW%H>S@I^TkfDuUkH@zTqF1D#;9gzKbmUpvI!a7KM=~X{X6g0eO7eYK}S^pW^i2R`{zWi+@K;8M5pJKp|lngWPPfFH)Ed zQ#3%;JLQlzcL$X@D8+mbkD_jnN^ZMU{7<1+Gun-2!A+kh!{1<+p7ZJjpc4%9k?w~hB2vt?)C;BXkmFT9H*Z%&xk)CSI!3O}$c8jQbL^E=fnR@kIJ!3+MIH~~My40p)2&2VcoSVQXo%vPN1#5} zkQHhvf@CKKGAlLNorT8axk~d0_pgojSug46_-g zyD=L2D?9Ml#1N`#5P=en%i*h z6B8WE7^jX0P2qERB6zrbfX55XSo0snJUJ6@V(#4wCyi(0f+vD_<>()p!e(K}lsRmj zog)o0Sjm2$cM+9G9AVXJ8;}%T08gGW_{B<;jhg8NM>0PWh54lxVlgSyJL@%#y=V+| zqSZLn`yH8n>@6G)^@J&IWh6^|B^g&OgatBTXljrK5^o2 z7ZEr=aSr~;|40Rf58_A3NP4Nu8%w0t5(&!|-mS`I;KSu+)HI7YzfA;DYfZzjFIsrS zF%q5km*d<*C*W<|iuxSaH7(r5I2eKwgyA2DVR=BN;jRZn<7pob6f zS8?6DdO9`f7ws=iv94^G1d-En>AD|cn0;s=&htw|v*dh;s2IU0eK)j=I7xjKPs29P zMs$=v4F}HhtSx`W(~+HXL89;s<@fvnmH7#neQy?iNH~QBGs}7TVG-1~wh_hxc2hIc z8d7+omfSq@mlsfK%hcLG!lgYar0?1)d~V-Q{5cn)zyC*+CHvsKcnAHX;>Edw&*K5E ze;!zU5&!7^gssO+anweQNl9*iLuc%`-RL{|LC7D|W@pny@{h^ioK@f&bPj`l_0|{^ zHc>GXK{|eb^La0C!HjT4IQdl&iY86R3HLT*UAj6Q@yGpSyYN&!k}Xgp>%`NWAey zqYQjSMV4^#@ssK#Nw4RdAxOk5hi z878N+@TxlYGoMJ_#NCZ^5d_I2vESmrWaTW)6pq^8XMi z=C-32(|BqH&i5v;%s$Zzi6b}oVgCg%W=r%LU*Cz0u%I|B+RC|vZob16`)|Sri&J>% zWCG_u9_BlC9)>2}pP05Omd4MY&viW3K*Y^A;I}S=UY8DrFM4-iV^%VCx9zlk<@+4} z*_KkDc0bbM{2oo5mf_Dc3viW-1gquDW7;NYFlWmx*f}GXtaMC2l*pvuhS4k%{_{F< zDO^U^6@7-l-L@qApDL;eCeRe+EcD@evi{SjGsY1HOiG>z`WC!~Y<@3)U=9mScNXH- zaSyOam19QQC76X5cH;Q-LiDro#{D9K`0M3NRERXj()@QM+J=&wP278Mt{C1PkYXRG zkAVv32I>2JmY*4I08@|2vRfyH(ue74V33=F`(=h8d|Znt>v0{U*HJLxbucVXn}k`) zo;)Ro1Zp;am|72nkcPaO81Q8kepF4Pt4o&Q_TWuarr!>R+>DtnXI*fdm&hu82VA>1 z1tj(>v$}C^a3D;WG)_AQL3N!VHf=tA<`qwcc0B^cvr|#^j{<94pFteX9AcDilz`|2 zSsLc}mYly=z&Q=iqENaAGjXHXSssVZQsaWE07EwZ=d4ulgX@yoD}`iwt+EK zzfNr7uOZJ(lz{}w0Xj9y*nT=ED1TRlqFEF9;nxDHc2`;eL*`(R>oPKe7z9Dhtb zmE3b(g$27>&`r(+N-UH}h}jjm)uad4j%>5Mcwz=`!}IfGATgevc@hK(qYv@)z&y(f zt&MOk?l5oa#(1(mWGU`VyiWG#L~=XTE*R_3K~F_9m=_s`?zz!?-hFB2SxE&I=~H2w zK4^noc^o~m@;0#u+Q7_l6C`g&m6=B~oN&&?%e+;(#nykh@7bXl?f53kkN7N_2D49c zuB{CfpxJRB#ts$1vsxiKvf>_b5iUX5>t)dQG7Ij+M`No~HdxQOO|Ps*YCa%=lRiHq zrzZyz+5P2Uzn+_;IBGEWT`9>*i{}epH-x{V`s~T-C>R;8#@2tM@V$%$-JV5sq;Lq0 z3k>*@{U5>N=LfoAHIJm4Tq8_iJDsin4F#4tL1l$LBf8p+3W##E@MWSzv)2nE1jSe* zyOZ2K#erlW_za@A1aV5E3KgHDfK$isgW9K8e1T6UaM>vk3VztZ)H|FfFzqykGKpmV zkwstnWsLd$OP%Dg?6xc4Ke)Fg|=yLBhR1K~J_g&w-Z@QHoFL{g_3l%=I!N!({k# zx0OKs$x~$Omg&qx-|b{&x(WPEG)2kd*5uZvpSUnx5YL|Rg}UBc9Gw~k=B-)JKx-}}CMq?09=U5Qzo-miu zSQ8u z)YFRt{iS%#WDa&IB;zrMPSV-%oD68>PWw#+8_^_=l^PD8l(J}Epf=ps=;b%$CBoG9b7b$1S~MSu zBkxu8Ab)fdiExPpy{rVX_)#_XyxR_AG45n`QybB}DMMBc7-6c3IvJU(POUf=*y%|; zdToy=Q=Qohu37UewI@HI#V4l2gwFrS;p7H(WP3R9+e>-P>*N_%wdG*f_{n2rhW;rf{*$m%fo-%jCq%}jwcf^K+m{!B*e zbTr1i4&@amDuIWTAHPiRJm@!|AZe%AC- zJo$G?mQiftzEzQ*A!>6hUewAXGQkJ1z^fgC>mT9Q6D?r+;0$hV*-bWT-G)W0onf#~ zgtTa~(W_h! zP53Of4R_KFo)XL|{S~BFBLY946+*4x&1kfv8~#ef!_I6&{^i`S*rUZT=e$FpZ~A;V zCOQc`9)2fY^9687F`FM9+6d;q?$&IH6DGx{O>q45Z({TgK-1ZY%UH@V<8rpl{Q73T zPhT>oy7{2fmssAB8~35_pF5;&{Z2y4Byj(?544?g=UuGrL_doY;4$MPtklJ)Av(f5-(jbd}rPZ zFQ%V{Esv7uWU)k!^D4*9pD*A%;q73!)D_k1+R3@iPwC8Hb2t(;iLLj_$Mw5X;mQ;X z@be$HzIJT})YnhMiQEouHP_h@T;M}i4W37{eeL-9zfaV{`mx4Sz?)1xB(o9DZ6+9!F|HL?-u94T{G3bK54sZrIaLCnwHhW%a}9A*Wh$D|R>D$*^V? z3dYgQOeGk5YsT2*Ucv2keh{}_4t8@6qAR)z%-DxK=t&FWh0C6xs*3kXLQDb`d3}Xi znD&5MW+6K6qx4mIC`>t<3(vJ~^3rD3QZj0dGj1p1ee+yeCpD7|>kXsJ|Eq_smg>wQ z(Kb}>RwS~=ovFmqJN*AHx$`QnTGfi*sYC~5X`VEfJ2TExV6WYjWfRglpTv+JJ`r_= zna&<~?#=~T61U#AT*Qe%ql>J->=A;|yO)bHfS__$_m)g-cJrNdjy*G=+ zgVgx74*QEd$6WIe%D!ZAy+Szcy!oEDKQ*2I&vF55J|)Kdy{W`5zyAhP@2-cX#qV)* zS`o>LUW0|56G1WcFB$rL5#63NlMGKswts#BOh1rjj}f!8;hGV31+;O=vU$g8ZP=7T{1TM6_&7i4Ty+xU0Ct)^vm{$M1x z4Du2H)rYg_-DkI{x0O3CTICB$zL_*e+Yd@-Uxn=EHDt(%^GWsI=4&S`;%)uz3JS9~ z@lx7F*!0td@cFGQ(>S*cYIBWPhoA+xYhWR)4s5}0{zJZTdoX&1WOI44Y1F=NHa34d z13xU!g5|?S^!aW`VG+Z>1RXDM{> zzX0?URb)$Vex*0R*z?zM(=+Rb7WA%Q050YdSJhk(^=sNedL*uq4*g22)tEerqGgJ3 zYSLYZ=*XhS%w?JTtM!QE`7=Zyyc3c(?Zl;9+n~A3jZrhs<|PT`kZWHvX?t@R25Qa1 z%p(VQ{)7E6SYJYx-Hj$0$4_H?mLNEpPi7)oU2(q4W$WC@^`uWq6($zj;=bwHkhU%t z8^dqWZRRSt+=%PN<|dPEkLKcbsf!T!m2*zaSVzqJvLRqa8Fao#2V4J0ERL_C_nss{ zPn9%dsJew$%w@dC0v6+^-x2p7n;(-dm


UIJ|0UsXQhD0BWy2G1NY4jsPNW9yl(<&z<(@<2P7%o<;nGc zHd>M2liJ{Hrx?escuO1n*OA5Yf50%*7fxj@g8lx1WbK>=7?PH&{qe*BTSxD~xScu8 z?Jk6M3yzVY@8zg+Y9?HNUJ_!SI!4(eO;zx zLJmCrU4VbzMnT%?8;~(8hPT;$2u_!{@;hx$!Q)>VApLqVG5)3t6YV=eXni1VT7Q63 zmvHCZt0%~yu_!%xUL792@27zuYWVMxeaWRSv}VP%=pWNJ(7bmW>4~og;nPx=QL+^la!(|QOVx`}oi9}-m! zu!!3+F1xZHMW?^#8Hea0c1hrHVL5FttpT?gD$HTomHgFm4WptpRDMab`r#Xcq~-{gTcUhzE^mVVH9*gpqOYBnne6kSUFR zh%@ZSm_b3Uw(V?Y=Y37qcjPLhODyAi?p1<;mw6B>bsklB`{R>+d#Rvp9!)Xug%@(w zP_AphsPHS`uBIO(d|igeuGhgV+2go8&jJfabjia;5%zwLC|K2S4m$IXWOD`sajV;T z%AyBw?89DAe%^@lnm>}P!c@NA{B4kW$r_dXUxD&eKOE6qiOxSgz`1oUM()`FBZVi? zo%7jz_YuW&w`Y@+e0<0>uKx~&HJKNcnBw0^n-wYRH`Na$r>RJx!@^v7>F+M}P6No|d z8Jhet5het0<=?o_Pv+NtC0}GR@az6b#Cf|u{NY?)YQ1H=5y77%>sm9hqlYnj>qm5) zwvUW#4@HGvr(j^NDc^a+9W3en0$*IdQ)3S!nxiR=@8URzX7fbay>=27eTABH(b1aiX2>a85fp{(W;?nQ22F;&gRQONroHvs#oE)B?Wlkg(7QG z)1eWP}P+Nfp&=Jgn|B6&_&65CYmHEoFcC9A9dF4ef z*(70H*-zU0eH0w_s52qobz#Z#%Q!3=PU`DVQ&V37m?(Z87XPS)8*7xA;Kh$&c_)BS zV;w`M2h2k-Mm6VGD6nd2CJa0YbW6NNpkD`3qF z1E$@I_6rFcGmG2wJl^x263Y8SmP!z&*Ur$S+VOEM%6h$S{(D+)}D1H{#=xT$5*u;xfP_NDYd%YhCO);5b2|DI2kRvCg;%W3>*^_)Ds zej1&uR-$KW0O&d>u(NL+pzRjHR7}eR&3{$${ds?EE!D&uTX)i-1Q`^q^8%f(ui(>0 zS5%z#gxG4#CA+mv1rQ96lx{(U1f`YbGV{a&Z0n+SBb32vFV6LUlB z;q!i7F7K*3jLg`F#48>?U&+MZwgc zCl`l?>K@hxV#`-!_Fa(xBqmL!^=~EF*%rC*^MWi}dwmQs4^-x2W>{hKXGb>YZ55Mu zNQM6TQbo4=T_tLh(nVQnx^7*=&ZZ zOaSFG;yC=y98-<;@St!JQ4cU8>DkBe(1Q^8=`e>`A$y;0`71%aVL5!-HI^>8M5zVQ z!owjZyt>UBukpCN3;Z6Ss8oeD)Ep#X5n1RIp9)2%i%3U{5G$!ZmwnLlUJ&xAlUOhG z2B9GdPW{sq=1lDZ@NB$6QZ04a&Rrjj_Y{PanPsCS?f^@LoX?_a;~IGN=PyJ$Y-2Y6 zo=GPbN^Y$2-uy;4WFXOQ~~W7a>y0(nb|E9@JP}ff$!*2kc~NvnwxiF!f2!*>~H{NNc+Rzt@)V2yAjnl zv|<5&w!FPXmU(SZN=Fi7@#vHo{M6e45B%!ULm>|zZxcrOqgU!ysg)4Tn#ZL4%0li% z_bYn;Z6tXW#d~D!3jd5$VaWl;60JvdT67W~u9uvf|g3U;5ua4SpPbvd2H-RuVO z@quK0aU7cxYG=HrcLvmEeIVz47JySt1!2Z-t}8z~gS8m2p)te4MEufk`f|z~cID7Q z&=2HbD61Z%b`O#Zxld{L8av~sdj(X3&vN}8wrB15%yM4;Y<5;>I7V1+F=@CI5Blm^ zjL~#Oi12++{OfmuRQn=uy>5sq{Cr6%RG}&K2TZ!yhe~e4D#IZe9aCZ6v zY(F}VmH5N&JL9jXIib z#Wu0yL~`pX=xB+8^7|GL8INRXk}RxSdJ4A3rhD&cV>l;wKGmA8;@~p^dohZSc z0%ofM8}aM|6E^*<06b#oylri~S1FxbeQJUaGx-ihr2@CVsT;pU`$1>i7}h=iGkuzu z0UJ$paG#zOXg|w=JF&Ci^~_ta#GGg4-}1*Z7R{K-T4TJ}Oi1RLXrW(%KF6ig<0Fi*J@eUvD{D#1k`xg3@#g#SGcjnw2=oU8k`(!USSQ(!y1V#!nnXODb7;Ym z0p5@B`Ww;SaSGtm64DaI=T@h#z}NbgV0X}hDy`5&X_Cz7$$i13GjCyAu3{Z8FQwzQ zci~$41_Bq}Cu4lWAUW#@%&Ib>t5s_7NJuBOJj^@)W-Ng4%4^sm`pa+kmL@<}CSE`l8UDR>K`_=t-KW|&bzs!n7&qtZ!R~=exJ#~r-j_K~CGv#v z$&e;pb|sAG_V|&u-ZRkDk_w(8o9G*P4}l~(TMj(d^<{>7~fJv_4;Hg zX5Ip-dydn(_6u-q?G{}0n}V994ot`|C#z-e(%iNzVzr~4pQo0f<^>fr*dK;UXQ!|w z2lfiK@%+$Nf6a+YLo=f^#|i$Xp1>-_Kg^h%UcoyD13m-H`|mEK!(34bpu!$t-(vzh zKD=S%ie3w>wMx)mrG{+U`;)Gy+fEk^&){6frh;jyJP8_jMd~b%z|LblgLotYFQ*5P zE1sUD)gX@KANdQ3O}ls;lnc%@?Ilj)Giim<9(1<8fD5lh5qsgOe9k$a79R@+^?%Cz z>}nzX`Q$KZuV9G0^hajW@CEYk%^A@7_>tHI3d6EBjZ~^?l)qYvI(R4zJr+-@MoP)rg(WJT{9xg_Y~q#JB%`s8>M!8Ek85y@t2at`%aCbisjwtY z6^>@5(WVvB+=8+8kbE!%_BxeO``rgA<2VH~X_Lb( z8j$>goFC#V!ukU^bBHpbdml4s=8MnVbzx-?&%*d{h#oPM zgntUc*za3J_H7QP(_^i%{gp)i|bv;%W$r-6~36RfZh##fJ);oXhD$gB%DY3|<^4Ei^TJ5~jp zq+uCU%#DV)CA?Qzs+Vr;2nB6EbGzxYGF9t1hdgkae9@WDlpLK)UQWG8%u>#h;NCdY zyfYCF?N3JQ9~WTeypwQ1(*$A;h4Q=Dd-T|%ENXUWA90%>2Aey6!HcEeVb_s$%x^7a z0Oe2kQ9s2b`_K#A(zOQ$zFdN|FSYn;{Wi4rRYzS< zhfAd3mUubUZrM|N=Su_4+2Tq*M9jhR^B2gIouN4Kcn>BN6++I1{b074|J~XG(Cp_u zY#p{hdE+Qh3(tWByFzfdF+fDzHlujPJuom$2VsSkq6?RqiQM6-1jst zDyjyL;xH($&O)gN)nxXTHhN=l35B`S5MTXaminjA|0=||m$gzvQfC*8i5N!*zscb& z?_1POKMHcja^U$Qk_25#!fiQsATcfzMy_~Z?Ojzg@LIvM%E!X4mhU80#0XEWX+ZZJ z3GPz2E1th3z?|MrviOM~NJ`Cy@5RFKFYBw|MXNYx8v21A+%C=S;MoRZn(?4&X$NAe zO{DB|GW-ylfagTFL5gjhk*l8(b{aR6ra9N(M$1}QxIzg`4d2tvaq(!b-%7TqWY{J=qUS#bgXUedr^=|q(LzL4p^8A1n^ zAd%9Uj;=~`v2WXU8vE%A96zxGCY&AtgO1-A+)-aEKc^H!t+R3I`Ngno&lAuPh;sR% zSs=8y6{>V|@jz%k@JeQQBs+?$ns#~_AlzT>d=)A!(FKgDQ%jSOPl@i(voNDR^r16wPy5N59$FfLdA+({Mr&Tl2a|jja`2 zDea`|o>mgedkMJDum}J16NeSsZ}D8o1A<9iiBzdl4oA3QhaGP!7!0N%g4q205_cxCrgT=Vpk;FFOhX`QVFF@DhqFSNmV`!#G9iUmPO zC>a?)U9jBkA&vUJhI(#n#~6iv^6rEPJN<_q49Y#Drc1nNxJV2RR8^D1Gt)?(n-iNp zSdNMB5}AYZCb73N*2C4?7x8J}3uKzpVfM94B>!XrUYVT^Ttg&QU&yUn-0BBe-QCPz z1!p?>@hF|~Kmvb$O@huDrh>rZ`eb42KAbz`49psP>^0kNeD$(9%s(SkJJ)R*8~SoT z8Ex#T9pD9o25#;sBqI)UheSZ`$}S?KEy8`9n?}sOvgrGwl(g-hghS4u_^neOo*Eis zTZ{=TQ>|nkk6A*u@~p;>T5a$o@gUh$@E(rTogr^dpF#J_?WB3d5v;~edcpG)Hg~y! z;`eA2TOSE7VgvB~L7rgV!H+a*$kF8Lq!RM)LopTvn@}tL2+9_$hR1t4(P}d9Ymd(| zvD{{eV`JMfp3fK#o2a6VNjYJRli<&VC|Y&XgSKfIgW8o}M9*>$4F1)}o6`s`s|v(j ztN1&D{wVdiYJoLv2WY{fO1{&$0quk43WSzU2g~G8NSt{RuD+}#v*HJ-XuuZuYjlH| zyQUqE4#nWnLEb&lcL-xEeDUeC^YHvnCGq0BTL&igf{0@^)394fU~5zlX+D>j8)jy# z*v2fFX5t6SH01=6#v_D{-G;N={V+;xHRO9wBm0jQfQ0isqVB((^!Dt5H}pT4zDE_V zkf-qCK_mU`=nc)!LtvcdYKZe}Bv+aA}nyZmUy(k?c)WVQU0*%rWFF>OWI(IfM_VFQU&nUK3@V zmE^15dI-sj#^iMoa3$m*8dr7W#-pyN`g92NotLu5HYp0ylOpMzEL-Zm7$7;*jefG6 z0p*j-K+uk<*5SKWR80AWs_gjh4T_gm1f;OX^Mm8*uHDeW2HsX$j&oE4FFJ9Xn z1r66EV8QoXR;M@>#YC;R*Hy2{C$!+1g0ol^@7=I^V4@$Q@OyR<%*bbTe^)%SR&fPu-oo?5(q zQwmS~`~d}OY8a6nM+f3e@Q|@TjFqp$!}?!PbINfPs>y~Oi&V(jRXi8yek&0pjMN;7_9<|;nZ`u7Eq9Ip*|9KUbwdVqhqR!9rZr$VW1 zWCriw6`dvl8z(FjjGHoq?Z0-Du9kGVA#E9P=QG6i>+aECV-BNdUo%mhTMDHWbJ6YW zV{&;yGkN!)FBJM@&`6n7xbSa+Nw|HiF|%w6lvmV&g@Ou{92_Cf@i^ut7E+sWIpQ zhUd1fYNPAw4)X8uGw@jTWFpGHmR6k11XVsS$4(Bz`^tqhm}jX~_FW{spUVY`x7*QV z$2w$Q-=O0yw8*3F>JU<-jxT50;m%76c!lp=6u2lsjiNs^&Pjn?S6U$$uEJ^2lQdX7 z)7Vm(K}#h&tnfbtt-D=d?Jp0k>Q%yfh5k^nBM{CDil~olwxH1TKH2oMgFKJb2LDN6 zu;1zsz7P#z?A*q(XFcR$V0;9!9SOL6vp3_cd>W#?_Yk4z6vk-PMXFt913!-?L-yDo zbf!GdtN3vaq{BLC!9xKt4bvqD{MF$8Z$D<2XG5Vb z&Iz@j7}5(171)o4Iq*QM8^>1)p{gJni(UH2lGZ22e$OVc$(9|A(T*l^$Z&xAfBi`& zUmJ(d?s8VriL-KF@eNKSe&Kp7vXJ} z47<|oJn1mo zJ$vTYeKIk8DxIRS3EDocfeByN5VM7`sOlGmBR9j@5}SSO=;{m@ZjXdE&AlKY>4fim zis;}3QNH&SLT10MgYq>B_|xq#w038q^$lU%(bP-b*YZ9VJ9pT5?Ewk7lLM-wAF)oz z7v=cZDbM{Gw8dtGEOJw1J5L>EUHER3@(Bv1*Qc}DubN3-^>j|LLxN2*4MNHOG0
    `(!;NW|sGUaS79m5&g2ax2bRoFX3wj>&+U2p< zz_){lvS=2}%{)&;1~&71O*2NedIgSq_LZ!=AcgOo60y%w3m-l3BROZZ!G!X&@R|jJ zEz>o~hk|%`*eQux7fb1^VkvHwX)X;9>Bf6AmXVE5lAs`AJZHN#OpukR408wnkcp6j zf=O9;dvQC-9U}_Uf~ImGEnlFq`c1*~+Hv5Vu#OYbPG(etTwt+KH1uR_0Ff2qtb=X= zp4b%y2iqx{Dax>kdSkh72V#K66*673#)A0e5V(E#AHEz7!ev?G*%OznVg651aw_i* z$d-&{$9{m>goY`LX05*xM zg3|gbFj$_7N}U0)z+#BX1sO7jgceiliUVlq`ib`zZos&AwNPcr!mQJhtbZ?yneQi( zNgE=u=*UyTHVSjz@57iC7X?&0^cE(0ZiVonZnQGz_l@1V$odF>@{Zw|ehtR>kk4e9 zUl3qr!&Ru6F@d%5IR%^l6wrBE4aB|08=mqGiZ@vf=rrjb>Z>isk~MkMZ^af2v7Ue# z2V-f0LIbpkyrtSXa#$K8i%0A(;o{LTT-*2o!L+^+(7%v^1^I8tiu0aO;xSD2&_aCK zF&<{eD1ch3KNE!(u>Z6Qe58k9)eSF@y1_y3u^2cWZN+S$)g*eO7Abh_2{u!cVbh+kxlZXL3Eryf{!MzqOY>=lFXiR$f>F0hK}q6E4hQPp(PWTA8E|{ z<>R?3Y~6& z%qshQYCkoFK8v0}A{JJ`-Y^0243WStZU+i9=VR(+EiPW;Hk!(uC9(JRL9_ElSlb;2 zcQ>xZCH)1=k^9HNAbB>}19M@ae;xQQ=)h7B^D z)fiXu;#@Xf4Lr_HAMb@iS`q|zhS5*VYT~+lDjuE`g&$Yt(W&bbG5Y&0Tox_NIfEYe zVBA_j0_z7+Gb~Y*hcZ-o+lLfjj)6qq} z6{PG<_)N++oPJ_5jw>sm+iTkK+Ru-;G(H(if6f4taayeFXGM4$xdq%#t^`-RXXOu|^4e)e=GZBu0px>5wXU;@sd~pche;msh2D~MoI(tcK{(YDl;EHJj>g+MT zbNXzY82X8Zkrtl2)X2WY`gKo1OE0zVg7*O|i#`WmlWyQ^B{$e%e4*R-Egv;L(jaIuJq2o1iwkN?3v>GR~1u?5=+S0us9%Dt0WXpg{ zWCT7{xKBSEQK;Q@{RN^^9aTve2LAd_^99Kzs z7J~AeVOr|lNToZcu*!j2wE3jWuBKBju7r^%RcL?J5jNeOhw(1F<4{c!9_JIhCn1f`W%}S8s}7-c3T)J=anP9l z2mFTuiQK16)HvG$?x&^Whp;>->e|Nc&+Z51;R1B+*8-Kr?;yekxW;iks1r`4uqdyC-}#iDJd>y8?f4^V^U z{;?1_VGR|!Z47&+{|DV+mqAlQl2!O`8M^2lMXg^*lFF2E%gVcaS1+&buwJ0R>0TGK zt6E~@-82loJxb;|_XtYV?eO=qZipYNikD~l6N&HwsGgUC!8JwHRCgE;&uD^})!le| z{93g3`_3e_^V~rTH-VZ=74OllhucGs(O`u+JafB+>({D5teGoabFLUQcdE1JWV1k} zUyNOl&Y^1bR!Gv1!aJ{@3Oqi3p|jQw)BAV+(dKhM1XtJj;|W6(eEheOHm&WgonhEQ z%H-2wr12abJu?|kCilXP@P5Iy`6=|Pxj!A5l1j(655c!INj&NGg)H@q!1rTa;mrnF zPJYFAGcX;(Q6c_eDm%Q;H zkUA`G+&nR`8qIxO<+nIUt$zyl%zMG+Y{7gKy=|B0O9V3sjBq zmrcCjcIOk=-XO9`%)~A1a!(b`W}F(kDrzbheP#mZd_kCtc$8h& zHR8`_dk@yREbfKzQ@5j|tOF*$66F@zK8AMF5Uk{-_R-Ftz_xHFoc_0fjDIc4DQvw> zLyq1c-qTG%mhZnln)QnQ*7nAbJ(n?_ccAH}O@_>mm6+oj!K4NL!Mfucp>F*R7~^>f zr#?6cW14e>6{>Bz*uBk%+eR8zUsU9zGQAs(T;dLDRQ6Lc8%Kx(EJ)xH67$koLy(@;hxJ0TSm2X_^QK1N z>C~B6tu4+>t@6dnpdq3lw+Fv1bRu_tucalAZr}@R16)4pFSss{gfY%JAhS!Ii+7p= z-4z}rhUY}i9!>|7*o8#P;|%oo-hqr5JFx20geg3qVvg}Nn$vY#L8jt%=xQ;73&4bJF=X-%Q!akj|JT~*A6p3@@G}?6`+wS zhpXof3Hl~4;)Fh3rt)G{7(cTL%Ov-~_N8VR7J2|PH2pzqza)rSFT`p+H#l@;0@Nu? z2aT*Yx}(w+uIt{z7v?{R!p564Y1TOumkgxRPbG2hMV?2j+e_>+wlWn9_&h~s7u7U4 z4r{91Na!x!P2@0xyz?%qyC$(2{)MJuy2gEot}4a@8uDCQ^gW#WMHG&gi-V)}V{8e| z7t}8s2QPM67#FC76Wbf(Fl%cxM0)wamX=1yin|XVLf)cyOBpTA3J{1mErclHQJCVC zgWpd7A%o|3GJdl=Xz2NDlFd6R-@m$!;gYLRzF<13wiMy>g!a5=>l7sYY2f#a&p9SL zTkv0XKIYGOMWi%?$>XL!blpHAnP&G0^-JHtoKI(HmUt1`J-taPmdzpT;bXYhF^2fP zoyH+|nmYIf(DceBw0CX{4SX0$qwhS2FAF{K@##fS+0KH2K`Pn%FBZ@LDkkX@@7ED8 zV-ijZc^>L_V$->p`KWn})-2ZpW7})^QAi#`RDaWhsb#d`Y9tKoRfUvsuPI6JXBze5 zQQpmvl(>rEsV!2d*C z+>4RiT|pCZdm9h84(CIxdo^hayGK3r2-Y+;k+r4;sJcN5-#&Sa_0ExSbRdOyW7`vB z2}4Zq7vd_`Q=v;=MU0^B>H6}M&m6@2X}$H=aJw0ok26+CyRb!`aG7|lR4 zaRVHjo(lotJz(cF2fTDLQLgn4^q8JNQEo0QIsA%{HQo5I<`j9ea~jzic^V!n-^WXo zpv{(@j#Eyo z#1(2`SXRU0wliMjM369=4;yfoHf!SV8NcvWff!A@(G8+2m1);DVRp<|e>}cBm(;!r zKry55q}H|?8$!;Y#~y$9_F@MfvEX|*6U10Pk^%3py(eAfYG`qa?-wn2Lp*d zhunNmKL4o1-G?#cBq(yCZuaDe!)og3(m~2a599Q6#bkl;Q+O6@PKV8#VRySUS@hPH zSm>V>$S1bIk*ZRBRj>)ydMA^x1!_27Jc*e zzS@z>4sT&*7dXO+*VpMLGgl}L)}za|q?!C`KTjmOr-LTXUEjNTD(>Z{AxjOMvrGm$&uF<3rQCuF_ z54(L_Xx&34R5$t$hmJ-PAEj`*WPSvA^^E6s=T$&U|n}LQJ zn`yio{~?u3JZ-7T%DxCh`*u;*!B3l<9{xo3Y~p*c3LmKagbu7oUII%o9uKUU3LZM1 z*!Sr+D(Uc4(3=LxDC3TbLbnfXu-HnC!FTD8?v@_(j4t1`c*-i z1nBNZ%?em0X zHkEWxQJxz*F_Al)dL4o#264Oe5~$pqjG|8E_=kUgd)Q-!OV%Q4O*H086V%up{NwGO z--`3fk}%HbJbKg%)4`Y}&_w?kACoO1`U5AhPjfFZ9UF?1Ql>zwlNSu%$;9<{80w)W z%MME<6Z5uvQ1ayzE{acu&ee*jxIB~89llT7?~H-JpU1I{UdOroTT0};{!6&_v5va^ zCr(8iJ<;*)9K3sI4pvy^lUtK^lH_Upb6{8x{Bna({Af8^B;}9_txW7yyh0XzjexKE zN_5?JZR)1oYW&yZEWGS|jZx0=APxK-KQxHg`i!N;aVt0rgGvh8x)^(P2iz?2;Cwuc z1>XL=?`!IMKBFE)tgmL(F`t}Z+gVuZ4%;YJj{8o-8g>hPS)As@55 zamDIlSQOES-vZB?^pX(R`9>UP62fXN$YYucR^qbi4d`g)ilMuQuw(lrm=v0TlFQWD zzkzA+FW3`Y>^{TILv6&Tip4)SXPQ`>&qZm@2%Z##8AIzRiyd9OvRj+cqxls)t%qSyx za2t)^Oi|410eQjq2%D)6BXOdUD9R*L zt8dYa**u#G%QKT(S7gMgx!Ypnq=Ufs&0{T8Pv(70%w)X)pcg+d9 z?zafrI-{0YElt3cO?-c)!VPy6_>#U1Em)g=l;)Rpf|h|It()JB%IcD6Z#S2GHM~ug zCBDNipZDbZICX*extFAKGzODQR}nM&ue9^iP6*jC9q(-WRcAEeJ>9swnTeQe4mMi* zcn^IozKH&btvC2Ak530)@p(kE*QB6S!cp8%)=V62_v1{9Fk<;Zl9?LSh@;F9IU*;< zJyZl}cs`cM5?{t+o)NkFL<#PCXi{h2L(KK@iBP1`#&-hsxD$(n*bS59$U_ZbcFLj> zES>&_oVr*+Cu@WnKS~^?=f>;Q9o;uV_86^W)k->;uB!X|*=8;>xAoc6vN`ZoIu^c` zUcp16%h&@N6>!O|fcVe9iMF*{>H0(GamFV%NNxN{ou}0eAiJ=%l|JCkY3l_0x|e^MwuSgt(zgtQT&$T_{ko zyMVI}PU2pz|ISaadoZ1d^4v!i2+-L{zXflh3jBThYvUZc>z6t^d-Yy=d*d=->_-K8 zXG^KpXJM>c?nLg{24d~M9|B{Yf3#*=0PfA>GsF7%aQPTRkB!?)bH3M6=S>s2-yud= zF))#=U2q6B34B=4Gn?K=`l=r>AAuEo)}1viPp zt0G!su^UAXhd|}NII!%|gLAtmynI{<;!_EJXvu(U<8w@|YfQpHqKclAE>Xiy8I<~U z7o#M7sPI)o6ixX~fy*YZbONzT95=q*fZwowo^s#5KkqG(P z5f4j4jO2X--VYM^zS0psgA*^%Ip~Zt;|_p~S|<&fBL^D%oYJ|jkMF;pp~H@sNv!k) za%e&+`1ARt>R=f-c`p%PHJ4(s`&{;)LYGO_Q>w-UIeZo z12jWo4N-i3i0JIviSD|KaXot&{CsmU=!OfrZ%$)oc1Lss$EO4_|SSd(49 zlzE0pORs{kxFM7er<3=*3tU{kk654m4=*1kWF8X>tqmo3@zDpAG8Ey`BW-EZe`DE# zfE09DU(fix@u$+i$8k+Xn=mlwEKa|_g*%y_j-~o}NLF10rEX&oOI%0N|9!@z{0!yG z(aq?Qlnu`s+!=>GUPQ;;ns@Ak;r5RiwN`~H+@S*wWPMZ4oB2FXjA@t5Q)g)bJxA-T*y-QD;)mkdy?Ng`8 z)XW|r4Ixl<@gN-8_nmR_jUqKxN_g-iekGpP;~Qy%M?ao;DGCmq3Xs>enDcCiW7HdSvBfHp3c9Mun@x*w$gdRA+D%Y0r-M!l zsRnI+cXp|~mT19Hu%=$=_ud)SQr@RCMm@(1!|RvU&2vk+ULi8rHU z@x9wv&g-@bGtqVpy3DqP1v*AJC##zH?xFmdHV4{XUj=bdbBywz%r4xn3+D9&0)x-O zFtf{u82*R{I9X0iq%E;8UXlw6Ka0xBhv}GowYcwwKj!+Lfdkpc=~(GX)V28qTfq$L zeoSYR)$GtOM;;CDhtMk@tZ~h51uof3m1EyknIyEka}s{Ls9UKN+N%En+iH8kZOH_z ze3+SWemTjgy`GIfWR`iA?NNhiax_RKz5>2wf7O*e9*k!zXab2X56@QO*G*K&T2ltu?yig9N` zJWPzA%q>%T2y6a$;TW~mIAc;b8F-lr6Q+-6FVzmyYR{i|IZPB)%tbkoPieG2Vj|CH zE`p@FWyI-4A*?>bz`1m7{`~j7u6@Q{_~CQ_SL{Q6XDW^wwjOwjRzUB8&qQb2YTBdS zP5uUNMTwM?)TDYU1}uq2*_cYfJ@-E(Yn~7;b%`ak?FX~Y)t5wC!BANvipn^w8o-L)iu(}C}GDy7)t-OMD3kz zu(#tr$q2d%f{JD65z&lu45QF5VhZ<#|Gcz1!WyKF!M^z?$-U{P(4OaT9u7B!(0vWG z<;g{S9aRcLPv4QbNouJ4Wipsm{UO_>w~#xTcA(wZk3XLLpQ|~6%bpR2Z}`m8%Q+^v z)3ZfT>sCn5KDdWHVz!X=T@h4kimAx+dQ7v)hqaySz-yBgVZS^l164uH;I~FvRuV%# zUr)y~DggqIITz{tSUdQzRvWh}#leJ$@(@swLO8PkZi(>&_@L1ZLVgA0#9kHhN=XI$ z`s8VU_*IjY(r=AyTR&p&IVo(ryPH|?SAq#H?H8=K@4+c+OqgoXMnRWdAld0NlQdj= z4a$`ZsYqci92IG#MK?Cn`j>n0M3MrlpWZ`ve^6laA8rM0;jLgQl2iwhV<6^EJB%K# z$5jiWNc+n$lo{~FCZTaC?GS^F?)juyTOJ!_06rFj>gqIF@Q;64AlX}3S&@AHf4 ziBpf6*?o6VcmGu0x$%vBb8kY65k*)Xd74z_&!ewjf5B75DKPEPKN7SGp=!ciDjo4r zP(RvDMN73{pH(n;_M}m%Vm&Id*cY`W1Mow?DkpKtksR6_Ya({11{8c+QTEe+C^wu7 zA~!xWf1Y&U`1(c+I9-T=saqi6atSK;EQ8YcG+H?1iQ8-W=V-SN?h94LFB&n}{A??v zdu+vo@u%VBX`aLOdozAHx|;WtRS5o>s>A)73!G7AAu*~|$Di(#IltM1q;9q)EYK^Y zCBb)b!aGasT|J%p&+`D&p=UhzdLk)Tnhfls$y}BoALHWgW3EvHUEUx9i=woA0+`b=3vWp`L-_nQGI`P`fwRy{6N}AjQDx;@ zp26`CKDxC{Gx8nd=Dr* zGl`3v>WFooS8&I!FYs;eHmtaqfIoWH2o_u9W4)XMy{kPI=O6olYp=y%$ub#Ee|s$v zyey}e=B&bR)tLPw6RBi z#D{y`qRC&!L-2b)&(uE1|Lw&mpsD$6!Mn-oczj(H-OYRT!q*-nPJ_ZwV0}%nan@d} z3soi7$F;c9SzCzxzDBa&%pAsOn+X&;y~)~)cGy0$iIEv63oAnA;oQZ)1T`|_K!WFm z?=$Je!6WjE+aif>xuI}2cXPVA+|MTF$$JcUC2bxxNC8b}is^4`jpY@=avIMI8*^o($tZ-p5Y+82o*6kay3`hW_qO z)V5wnv$n{BY!aWBpM9Nb9*n@AugS<}ZNzOhmbGF-mE`EOWTi&n&8<{_~2P3KodqocB3kSyCW4w?C2&YyAKl zk1CwB)STP5fbZ??7)xL2^8ocFn3k&+n=4I`;kiZr$Kd;fNwi|bs+d7tOLzu(VC zBq$NZ9xK958&PKa&}r~~F3U_mQ%RINg?RSOX6{JeVQLxDDlnShj(dDVm`}d-;Cp-z zTo0^br``RGA4Pdq@RA&Q(RwA`b@@prnVbMyLn}HZega;<`I#&*Fc$U=DuCP!-sQr+ zhv=*i*pjf3t})9&i?6dtRQ5a)(jWl&zy2h7a~movOh%upmdw@pwt{05Y;ahtfrxK6 zfls?m(l)0MJiBTQ<7DEA=1+H$EA4aPWo9Zw=-#0ob+cg6tOu-azbl&9TH|Q?5WQ~# znyYUD=SCwU-R(`2&y9iAMxV*#2k%Jx?SE8e?;rSHsOf>v+$?zZ zFo|AE^e3hdVyVS86$s`Ts+JNa{JGDZSk;t4t85r%^%t^_*M?)imk4ve+!d>iOeTG{ zG2}U?iMHbRAoT1c)Oe9ZvMxK2lYgVJ$5;X9Tu1ufoebFbsRwH0`)Jb>8!rCA2oe2W zMyK)|pZ%NsF)=9-sl-7z{78msd#b|2$`3^SU^q29YYL0=FFPQL9j z=B&jNpgLcfK3dj7RSu`&On+N}3zu&$B(1L-8PriPJK$O$D81Mmr;z(-Y00AB1R8cMbpH< zINF(E4JJc6xTQ>j2|8tmQGZwBV&9wOcowA_Yk0Tl!4bM5|16YTXhQ8p!}RPLXIMDt z8OTvF=6LN~eAxGy)I^zr1AjI>K2HnZy_bW`lseXFMHYGUbRI2u{mb43GD*pVA=dqKOp$J66rtBQMUn z3#K2e6$DPa&YHL#1(&mja7)T98aOu;oIlMF-2D?x-fF)V4(6ys+``QuHI#s-%gspK zc?sA(s}Y`-HIQlD`Q&nq2>q!1oL+r?g(^KPqGAy(VCEA-?*EQKt9CIkeRy2xKUGL= zS9w9_E_=|por@bAPvX6VW5ho46luuW1@qqO;enw@RH*MF+r%c4Yj3Xe{e&~9YZn9B zx8B3rABEVf*)0h345u@qJ?OXR65KmuTa;X`!y4UsV_)SSM8qDNLg@on@Ra)x-=$Vy z((>uBeq;q6jF}6H(o-RMyB+8!9~byP{!CSyzF>zd#nA777hGg$askw;9VE>hiFadd%G3p&4xwLfr&;OvS(fp=&$oGh<_;`DsTO@3jox~v3C zg62WRC>!|ZmWZX#X8|rOC#Tj<#?Ha1f=S&1&`R2hB9R63P|;UvbN4z8t~LVBe6X@Y zM4RA^1+0v84peuo;OC#$(UG{|Ss>58vx`+^0b{9OQfW3;iM4dMVv) zxE`K5UO*kb3;A;UYw~bODm6D-gy#d7(}gm8$H_OD)`ednJr{3LDaUt$mXnj{Si?*l zx7HCG`OIA@f8JPf$r)mYUs2B{PZ-&6Ll$(c#52}qbpF0Gf`Y0!;4jINrrX)9&Dl;8 zwD&cNw^>nY_?`N+@cyYBS9qIegDSSN*l>Rb=2=C+V%b_MGGjV^wG$D%f02)0*2UvH zyEgKOcMj}r%lb_1KE5Z*)#VW&I^W&_8Um~fy+(IlO zx6vt+WsuBr$1Mx*!@ak<_KL65(Ddm~x>bKX+&G;`Ol+L6uW%mL2Io=z${xX&ujj$^ z&m(-rXXCn8FT`+}C#W)VnJh~+gkSFc^!lX|vgcYJdfOL3V38JzzL~>GU3rz5hqc z9M$O!*A%?ra2homTlkrOEbqKJghyutvjRTz{cgD-e+HZi64!#sQ?nGzmUu|FQ5f+b@h`sXze28V%y)l#g#ehEcwnql1@db}CiWF1RbY5p`x* z@pDU65@uFQw4G04^>`OJrT2n7P|78JZx-O5V@dFBE1ypicS5HZE_7MR8vB^_+2r(F z2lnIY3qrg7JP*_~5WY9*5&A`pZqseYF|#WLDs6LFDP}y%uMQ+h?uMMp!QasLPz#4n zZ(_}@2@YP$|t^q!{drUX;wekFgynWBQo*ynzuyd zOc1!F8Gx$yH<049=~DZ0=y9KHqW|M3T`}W6etvO`omO)QH-5A?ziVdYh)y*{NNc-W(&~v>=z>JQ318skJQm# zog45I!avgsFk37JnAj^+YxQfvuj`Mg;j~&X(0ffbTAf0NJ@Hr^TnC;zk8pO5Q}MiL z4!yI#4C@0LA<@wQl;^xAD@%%SOpTDP%;+NOZJL5JIqtZ8&v?$K+fz^|Cq*_FRX}QW z0`@4m(3pE$!Ao8Y@?S5*mNmca=Zf7X&xkD?N|Ivcn3O@wW?wRk&s1qHd`0rb)94Fh zf9ho6%89uBA&WNg{&|U8Xwp%NnSOI%^$sP>h|Iy_eOgR?n>x6}W>b|4Ggf-93FowU zB}uuP1L6m}Q2fL*$ayl8dwSCw#4UTlyC4dFw9Xdzdn?cxO2=?ixf+hYf1Y*v*A7|U z2Jok)f%UUBWxG3{lb*IjTrgXWdL7!0O6PbFxV{~J`@4ZFG+7FZo?~YRP5v7h z{2q@JF6csC+je|Ec@n97wgZi<^YHKMZlYNC8KCPCZSC2L-f0o=dqjgsIlQN<)0@ew zJ-0|{rV=br-tZ1NqEG=4ZM>7o+=zQfH#JTDwBowIAiL$bI z&P^Q-*cTvsIGav>&YuNuhzV-w{gWvv47P;d`dp zi$m<~EftvGgwJjTYtX7tb1-tt$KMO@L4I@!mzz)y+q3t=u~QK!TXT^bw%c*HTMU^k zK^wt&)B~(~p~1KvsAl`rH8}!%2!1Hy?e6noPU;tK;FmGul$pavpTn8CA~{6%R~%hb z+d{^>YcVp_j|6W|iEx^ALUQ}0Khb$N3C3*L$#~D1i4HW9m}HEGzEo+(>B=vNo;ri6 zed32F9rNJ&nCVdEybbI;rf`pshl5hjMLKEpC;zfq8zo8hITDEPPp3{w=6$Mwnr?$QK#b|Uu+vxRdQfkSxY*$ zk7iWzqKJC=SlYXyTd=D31ah_scyr@;h!Y+qmj)if2g_*G@+qccE6>19zOTyZjBU&062j%pH=&dQZ1RA4xShMMF_vc@q_>w#VkfpJ4jo1k@c>3z8GcVToZV zD(qB)8&Maba+(PKJlFx;8Gc?D8ICyyN!ZMDh;D=p(&+5bu1q^SzvMjmu%Yz3af7kOiV*@dvhgrcchd4X%lJb;A5P0G#;9}^2or3wT?oHn?V4)?Ltu;bJ?h{#(APIZll|!RjI%#dXfT_BZ;PSTDWYXg$ z5NCUWj8{JcGQqO+=%bkk)-w1b^dC(-pM)NHGMM!BAnzPo3fI?8fVo!#@wROTtNv*k zbK_trk@MggO~dM3Oidj!D=w1*USd>nYB_OI)FMHvc7uYyITObJ{A_s`Zu4`5;WcK^ z5VnRUHO~j0C9T2$|bv0IjcTi`ibXLgx<&u@T} z$=Y!5PZDk_ct#zr)zXrmv3y@t7Bl$g|1Z%1SUNX|w{aaKa^?SVD!LVL@b7DUsPSPdbfA!sZ<2!7JiT$P z7?{-3^a$QTAd?CG+tzZE-%b)%%xBQfU?ur6$CubSjR?m!oJ6(!IJ{E&34cj!riMSC z!ojh3P_%41H>Ka5X7ag}o%%_*EzOW_c2a|I8Ezd*1g%Hs zQ0I0g#)*q@rrHwBpZ#O8Jn%8P+J1rDnXXte*iS881RT3F7Qe3+r&-I(>DM(E*@H7B zpvGyl{e}2;`x0~GD3HfP4PwW^W+~vlfiXby{wF)PBh+q*o>E#-lcDw1BC6PAH%Ohqsg`x zTfyX+1!>*xg&D9J{VnCWE7yi$R_zMn+h z7LI48IEv!k-4680*g|yRR?~eQFX+6Bh4j^xm*k+H8r-zmPv~O8SB#s zk=40`v_)gg_f(uP7%=mG_E~yMwv+E_+#*gNl+Zs}nHlSK9bb8{)ckHFzF;TO*;}We z%;#FVAXW^f)L4SaIuS6sn@SeUxQIcMmQhj5B*E!#zuAvz8ANl-ISfsZ!}^R>WO3Xb zdg-?oI#xN;1k+d)xgmoJ4Ow8q=Xl$AhWht3aY&C^A-r7d$jZ88v3F0kk!P`dH*{w& zXzI}5rl|KTWqM=tj*sY7E8=Mo-bc{E2@rn6a z3FqjyG8LTWuWw)SS`~EF#4%^{Vb&)|8?RVg1l54g^leZz{#k58L$=1^{-Ir1z9tsi z+N8i?Y#g3hc#iI$9)p*g7vZ4|o8gJiC}Fa?xQBt>0l?rHP*LiANXp;;rI7K^zGOw2;80uP8sd+=oaq=k+f!3 zAG^S3A;Up?$!3r>6hfS~1lCP5pw46TA%4>h;ve`9B0k^4=#?*_zF9~wPKt+!j>`~x z*pznrNUbOEa%ybg;_t1hf>&Fzesw&>EotXQ+BZ&GAYw`MeB`xmuj_ z@*6cs-%oECZbUmTEx30unaqmf&(wmG%-Xg7*sAXX{g);}=G{C@Gf?2X@E$U!lF3M; z6t{kiCxqu*pclhmlG5S;s7oCOx#QAtuedTEnytA3;38EdZmw+2L|rqDj$ zVz``m5!$Aor_Jec*kEJDK;ydXu_E~)`FQ?3!5-86x;mY z)56a$0Z!h=TB9T)s}#X=VXU|o#RR?=w+3gQc0ir+cCaVs638D4M;G21w?yeEz2*6V zeEb+q0v*4RYPOCVZLA}X&wk)o?f*OnN(AC|$=quI`8`j2S zcy~Vy2{XjY3(HVouZl0fpCX?>nbSwj=itA}#YBC>I`(v+BCF|Zg9~>5qtoQHh)?)) zn8(D>nbC&iWVa}@wqX<1?HY~k@z$UjaG8!)IZ6dI27I@va(`TtN$~Pdc>UldTCxJ@ zBh-h>&5cxg?r5fZ-5q$RGLgF}{g2h==iy#zC-|<;R80171+kIy?3iIEq09VTxXkOG zpnuLyF#B}N{ZG&B+-5}&@{E+Nhv?-| z#*B2-D8_F^8gUl76Ym{HT+zv?{QZ3pWr8MCt(kgwaXgUYC%Q30OBGuitJqPFy+lem zjO~sZhL-9+>YQ|+-$h=a-f~y*YE&vw8Bu`$=57V&W6kW18(pB8wj56hd5`UkaN1uz z9ZI%oK{ zg0YPUL6qM$G;Fel635RZ!Qho}Yx6kVRQ#Aq9g2cCEfTO`f-BEkvt@KOym6@VJ@4K$ zg7*(XQMd7r@Xx5FNV20aY+Wx5s_TJN&v%j&G>W$DpThX5Nin1RPtbjyzc5Xo5gb2J zistp_(c9AwR&4BL{ad9m>pJf^y})zktI~;u^%gYS(FLaIvoSJofGpV0_YCwR;rLJ` zgb#a@?_!Fq-u4IdtRl}x4DrByf0aE%vtH z##fZ!Y^zNm_irU0R&+wQDH1SXun#KNq}b=>4+#S6~wh(q3`)~$!7Hsh_Woe`BKs3cW5t8_nZSNfkNmGvZPjiW>8q(V`{rNM<{>RJt;g$9K|m?m=v@?_0rzBN1SA#(?^5km4l#Od&075*myX zM=#t8C(0smXM!@-c8Y-43Wbn6el+)MRy2n0*vfX!cIWr?CDb$~4SyH(LP>HWwr;&e z^L=;2R2d=03>?4_Mcz2IG81N#<+vi^_&iALx!mT|BpXG*^G8Md}LLR+IlGwo`ece?Aiyx+(t(X+8lwKCaZw!sei0%W-_LX^I=u}CzEOUG0udYDVo4TB}^n3W|drT1hx`AB1 zlSqmN+IXLZ2#o)b2YWh>;QK!vr1@+y@mi4!MQ{zgx#PTR@fm!icOkHOIVL-`up(1m zffb*>ixRFtRm{S?rzJQ=fq~nY%EsK7CfIEmLmhPNXw1M>kRxHV_=_l+@KuU**8iXd zKYDTP;>Us&R+$X_G#Ngtw2)Z~_?cJD1a5wxB2&5{3(L051e0%N#JEY8`?A89G)9@@ zp{qVPWl}%BdldnX8=r$yqXuN@hoaw)w{WUPflEIs&eXX1V)ONr5U!C1iLL{Jr@q_q zz|?A7`ehVpThIfCZcGG)p(gllHwRukxJb9ZF{Haq(;(xK49tA@0i@$hp-tsIVU6$5 zYVSfETIUICH@A|z-xWE5c?RsQzDxDf&)LgIY2XU`eQ@N42jpvBflk98bfL#9)Gn^V zjXlXQdQTa4TpNSD$-L6;Zn40)C=2k951a}WC4K)CQG0U;PHkx=Q8R>ec$pdOS2_Xn zzUY(SS+;b0P!VY@jY89(({UTW=Xw&m7az~;xV3+JD#!6R)cxElYivEd^!9Nl)EF~y=EKH znVd$xoGk~|^E~kl3&Byg(%`Wt3ie#}pi8#oWAx%z^hvV`-PV7TcPKQYR+AFm8TX40 zSKWu8cf70YXevIpiNuJS<=m6vZql7Uidp2b0RJ34g$CW(^rO{9h>?8>`EoLRr!avI z9kS&Tp6{l*w)tdHm>Np&Jqco#tMQpZGI76Sf{IThkVxDGUUvZJVkct%$1IY(&k0)A zK7|zdvuvb64%A&eNJs8!Gb%3&*b;}Yu)b^vP2-N^hcDGI@9`T{TpCN|3wW-V?s+`F zpW|o#Uf|L8lf2&j0}P@kBQ=yk;|c1pDefvx*f0}5i8cYKorS3(4=|wYBKGno&N@;li=1F0eMmE$mUZrBwOyR}D zDj4yDeAYJ|#uWe)kMx#vg*r17mSq<{GH7aKbxcg`jh^(!M9D z5Y{Cok_+qCqs6i)q7o&}rBB~XHVkyzE06UeFJ^?2->Xw#e8yjLZ;}tKy?23B?=gYx zKc+&tXdac(`9Ug{ZiFd`yZPSi47^bo4-by1aqai7VXt0SrBRF)^n6LcfN8BnPiQ2N zm41bVUzOlX>t$hxODl@434vCJ7%-oagH~7m<7Yh^h^D&;BnbvluepFcR#Sqq@Q zT$P*tJssEoJqgq7bm-r)DeUO{6PSr2+&x*o)1jY+r%fWri9Ip)mybQioD@Z_Zruai zvAl|B?G@oxMKyBH@*#zs4J6Pk0|Lx*h*gXXvtw{SUFV_#RcHNh+?tn?$ z&~?mye0Zv%Ct}} z#o|0_R9OnS-J`g}-FD0{c}b%U+Ti%f?U3Z@K=Om)P}pdOUz0MxY5aS%7#JbBPdTtS z{*34!I7&YxOTcS(J>9n95v_=BBrEt{Qm;L~7ryHTGg)6;CzVCI?v2KGkEYO%9=*8o zTpS6gs0Y{Q17uY~CoTG^z-6C34L$>_fF0E1IV0h4K4Sox3=0?=>Ik=fl~5}S1<-YK zq)9z~_>DBv`EOq1;DSYnGClZJ*aX9Be{jFYQt&Kt7Ia^&rZfBQkmECLxH7+g0-gK! zXhi=3*c9JH7ay)8+?R!@wQ2(LHEB#d_d>8^y#)^SnZt(NXK-+LFx(%b1BP7_Fz~P~ z{~c0{>OSvj)w~d6bE#TSB_VqR%zgQ>^y|cxQ2%BQ);wBB&MnV{ z88Rc-;+D)aEYv~8_80zL@kAgilMRa!qM6+i|8Y(4PmuByA*qNO1Rty8ShRl*JQ^E< zLjgP+yRH##n*{={ccj@1XK)Tjp93$aM2)q)vnKd1*)q~hU6Wq04z_0?Yj!UjQz@lh zqE>jpy96%f8{%NYIe5E5mU+^wj7O*bBQ@e))KGRJBcm{y+2dD2_3C6n5Sc>oSO@Fz z=^Q?hoP+XDr^2Z?36xyr$AF$VlXdDVI7G+8;Olj$;3&uCo|=b$!k6&8_A}J=Ni!@l zQ-WbxYi1X=f?!4nOl))|uZlLaZ+YHs`WPY6n-#6bMe94U3Y) zQPjTz9h6Q(%D4!4ejtMS-x0;S%LjoA2gp7FaQ5dsc$Pef%au#%>vLoA#P}y5zrYd| ztjE%!wJq>plo)sZsu6#_CGGUVrYxMS3+%$7f3P@dC;V=yBR$41;nEs@9${opYUghxiMM6ZqPT$P*X*Tj z8#Bm{sje`uJqwTQGDf!087A)$;BCd5!l8h-kS@bBeX`QvUfczqo2rU8W*vgQ_oKMF z&|Ub_E0&ym)qy)DBQVP8E%lUe<6K+J$mFmjEHzHS;f&RI?$UV3mF^{H-7w@fqtMuSXN1j_W5d(IZ(C?CkSi8Cq%u1zjy1Eo7S9L&c-I;`(S@)eJ9JPbzQ;bF`2YF^)>l@I~uR~zNEIB%h-=Qjp_7s zPkP?in@&*IhdjL&dNUy$701q}ncQql5WNUmi|imK*q45qC<4Pxzlp(@YdCR(7L(Y~ ziJ5)5)bN}H=EM~d3569nl+Z`ipXdvmdbM$3fgAIB;${#uxigi(cW)KT@yo$yXy>*F zCv{43;d1V<(?1*kr74gXPZ`>9X*r|&Ocj@FCV}QDcQ~OSNwsA8oDLbpc?v6W%;#Uk zZ^wJ`?L!=K2^Em~(`v{FdAHJ*C&#ckwHmdj9A~y;D5gJUz|TO6({!572)zuMgxsI-cOFZF zeLG3!u_;J~U6C1af$&S$pu|p+s`Jk9haHbeeDiq}`Y*)1Lvzu5{vWs}H3W~pW$>K6 zZ)E14&181>MK;-aF>4wym%A$eiH<`HuE=c~Zqb^L2Ol0K^Ui0$50Q5;`c^g8`+vfF zb-~#F;x*;|?FI5W*t5#NA36FYEm!ay&oU;jldh z=A=T}?*RRki|7)bQ?c^-F|s>Kk8|Co42Q=kadVd)rY8dvNP%c8woCrNpO-nWkT0B@tE*R7bh9uKKTNH^%sKaWx`i!fc_jAdkgT%%@Ev_Vb6@7a1xKavF9#iC&8w-i4+G? zanrHIIODbpzN(ah+({jHU3moE7DkX4+8@~%*E!t!*VB;X*+8G+Fzr$QCy2A-8FWf# zz$3k!*TYOA=BCN${V<+o%cp^8hb$w@pX)~P@1^$7Q=sG-gVQGT5zE3N5N&@-cg@mg z=1-G@!^_0D#+7x@wR0@1>bH^ZR#{Ixyr$qjT2E)J?m~Y_GrYc{olNeo$Bh5@oz>$} zjNaM#ob)I!j8jh~(wD!pSE`1Q9kRm<%ipr@hZLA|UBB5`Vv5{dSy|3Nj-*O!oxo>AQDF&D7l%^ofrbn5u&0dADhPOgh%J6YhwMK!K?W*CyhMJ7Z6gkMa}1Z2DOmcioe2(Q1SQ zsZ3hYi0HDyi0OQI71ypQzzG!v^u7NCSS$SurDY3A(@-k$z496!Ph81teDsi%yh2(# zK?9Fz-6UVqda&5;GhG*PlD^fwOI93M3i^BH68gH6(QNQK9V+V}E3fgN867RIRdx!5 z1@gJS2z?SAF@`I?oj^>M_u}Je`tYr5BGuCKgy`fXTvh%LPnQ)_vpxmxSWr5$zZS76 z@zGGZxByew5!y1Fe{S2WFk3$#r*YfVAVg{mc7;v?IA02DOXuV9j4@p85P{mX%d~n9 zp_a=;s9I&az;a!Jz4GPzP^To$*$w=`%jXV*!SktLQB;F=s#mddOQPT{mx6;={~#nU zhF3$WU|vzkI^GDUc)kD{)GG1rKsfuQIE#LUy3fmU&3p@0CrBOV8u^F zf>yXYjQ)KNr+%Hz-F<8gx3jL%w6;@tq~j8PoAwNi2A@;uQ5AH@`wm($!288N_@M3v zf~hVV;5jP{|Mt~l=fM+j_>>~^v+fVdZwA;J?Me>3lK_4C37(HxjYqtJsg*wlN6tJD z?Ccex;XxUo5w-~;_U*y8bEomFsu$mb{4U6EKyue38|Bw@3WSa~iOEcJqP{uDK5d~G z?A+}`uHQ@G_Y9&a&+m`J>zpAgyb%T%;C9&R#iTFL&l1 zB>$NYo^CtHMIGRO-ALul_X5OpN)5^70UkkgOcwEe!2dO-st~L#yGRM zO?fknQ*mUPERI9V+#O_J#!+gNPT@dqiru-Q7f>pnj?pirn57DZd|&e$OekLgatZn5 z$u9@&Thxx4U$>HF0oO3DU7ZUMk!Hm5N5inM4lQz62?htHh+k5n23Oo68*R^G)b2<@NaPIkIJFKmYWw+2 zz8CA&WXC22$uj}LW4QkgCt_1p3~HN9VWj-)apF)gxSf!N(tpV~c0~_eardxbYw|O! z$O*x^o6G4X#*?&Y_QHJ+j?PzMud zDOG?^Qy8l6LTeIF&|g!`vyN0^P)bW@fwOc))HlkYkLYqSH#{EMNh>PzsF0-r0bIY-|4Mf3B?cVz#9 zt#rTfW;~H#1Yb4E@cGUy(J?P?<_s2k}TuB+UI#E#ynJQ z5n-I4D#9GEJoZ&;xS-s?9%rvI1#`doP!;xv>@Eqxg}Kvlt4AC8x!Vw|su#h*&1v}P z*nJ#-M*$l5dE@kra@?)4d!Rq481HeD**9~J!jA73dG}%t9v@jvyPpr!wuv^JD-{xv zH*wT+sulFbngQiGUfENgz~4{0WUkRPeA%2!cPi(Q?OQFtKfDv)JU$J_MFPlwuUDXr zQMUab2OoGC>4uW`0`b?ADRAi$pXvUqigT|@k!@a*V8-uG+Y1-b1I>J|RH2bxxbO>S znm&gGGiM8*3VD9{XnAl{dqo>H8>!B-I$HU$g}oM+1HlFW@4smYxzq-MUGQbJPuxOu z<_^-h%P+8vd=ZdO>KL-BnH--*LB!!Ud+D<-k*Hv4-k)qLbA=;M_&aMh@7P&lEsHy? zRXF{m!^npJ!k;2Lh^b%-^)u%k3%}&B!s;MM&hVo3r<(+(9p~vG=ksK7xv4lEf%g^)v_?&r+W@b5c>@WlMT1{L6NzgTG z6I*D!9Tl82P~PwyIT`bip2-TNO#vo2D@UHZy|R)H^K;Ted1iR#ni@$v`kDOOV+BzX zjxb@)I6+=QBo0Ow3H=uQLRtTEh%_%l2MbkVQz?gYS~ft{L{)fT-$m;0^L<3oV8H>W z_k?Lu=DfAbNZhUmWOn2m)QH$mF8JM}e+5%#?wk;h_YCymq>l_)Vmy|+x5=7m7=4Lu zBu3n;n_2vRT7u60IvrzotI-E9`bn(R6n+uv1h27@ra<&C1N&TW*Pt}ta z?@YSBR)&ksok!}b+VH@oz5I9J@{06BF@o5nP{i&?LH(Q*+}FFG-j=q6gxTw8{FP+3 zDdjauZs5D>=eM(4gEi@VLnoZ;DZy#1jfX7<`T5Qu3OvLsh`O~i38=pa#fLW7A1q2k z+jcJ&dg9^aZZ({=cZjupr@%X2Zjx6q*3}TwPf@J+8^ecbXIc(WLv zYwTyEyS~ydKQ`bv(+lh|15K`xzrX7T$YR{0l{D(rAu_uujm|l`kQy`)W~osyqI9!e ze55>_n-d6o_vL{1*c##;ew-F-xndxy(X+!_$!-^Q?$c90!G4`%M624ITYc+_Fext+ zwHBGd)hjU=f9e~$s}++=C(PkY=MB_yw}9en3^)F}7&PWtz_>|!@ygpUyY}48#4-00 ztmxZLJ$+=kxFv_cW>^asNy+2w%y1|+URL=jeFs)npT^Eh;qZ9B9sb?#1hp!Y@piI2 zxAE5{GW}Wu={{XF2t?nA?$z6|Je3* zt@L#6O+kBT9bLrV`JcVi<$NpiLFx^IPxVC65))t~CWhQMx5P8;#+dWEmMFYzBteU$ zan+4C0y|3u8mM}L?+K%w$?4np@sJ0GHGCjCybI24u@<=MsDZ!LNp?&6SL8~az-p-! z3c6I#@{_phM#vG71Fov|s+`=7(mE^)9qkxs15w& zpV?7TR(N`tg){x*i1LRTs*vy**d;yq;6M`uSjA(--Bwa+^aSz*aV}jnieSsqSu||q6q9XzpT9fz z5s|_Vgw<&m{QeWp`zsd^Vc%T%R68P&(q4!j`nQRHRSz{9YYTzFUU2NQ4b-|B;ncwG zWRle^sO!&Wjd@R;w|=j{?DS3nHIcwAzrWKP15)tt?@|1$LD{tzXX1)qjWlOx5l!O# zGY7vppzXFX%%Y(2Sln<1gOo2o**r1$Ijs#k8&o;Fw<2)XIv!q@c4HK|cteDl6#ErtPf@_j)BV6nwG`FBk!cn7f~{wr;QjtC z2z=*GDh+|ojd$ptBe1Adfc*K^8~7H$`Ha$g`j>f&@yR(_-=+U zE1kjq9`B0Szl^%?8N_4B2grUoABZuMqw5ST@OWO6@cTkt+#72SO3psmUoi&%l!Z`% z^ES@b*Ax^aSD*v$r`5<>gzp!pA@@oK|EoJmMoMDIRogHu|8tGMvuY5x(=VvyNGYzI z6e{?=gQe>i7lP|RIz;lG1?}c(C~`#%YA?;hR^vzHy!CqQ2{=5HJMn{Etu6zn8;#KK zX&@@TF2%#8dBn<^_b&c-30rrX(XBC8NXxfYxU6;@g1a*4LwnnsCOVV3jD_p%XWR%S zvkt~XvcfUAWw!%&#~i0`^%aEHeWsj6?>9l5a|7L_AVUq2XM z7cqEF(h0LR5)|`UzAjl3u$WV4dE$dElKW{Q%peZqhznhVp11=iKvCt;C=OP^xaw)%zCnzjB>cfj>-(jBUN*u zhBL*fpLFnPzyyYISj2QzR-!s^io!Z>! zZx;!cZsFptyRUtm@0FhI}eAk@cd8?d+ ziB-{nnxbuYw8d5;!=q7Y-6op&v4rKEjBN!`r9QNN`4W$l0aEh`Xr=2mI zNz0SM1v3k9?nVjJFm}eeslds5Q`~<40JlKZ4OeyLL*IljE`LJ+T_YEcwpwTL^s>{q z(u#$&c|Q0?_75@p^#oqDWkAoEa^f=aBk9@u9Q~BcF+ldbAVlRZ>NqMvB0rN_^DLHL zbVx)Q2WQgz=^)jrf*&0rxVB1~bd64-F8q$&J$MLr z2Ju`wzGvbcZpqyauEvD}LG;YB1bR&5FzH#AP7;=FKpTzkJg;zo?iiRsyS7Gwy!i#P zcVG;79O0Q}wZ$~@+eG|Oas!`L`$1&OTH$coJv#j%-^~yDZRes94Fj$1FfK@onuF z+|4FAX1TN~nB86sTjHg$DRZX)r?_CBJ>P$8O<=pXSK-#NtI5V;4|1nDm9Cy>0A`ui zXgT6X@{+cp%BMi~ai=6BNHBw0Gm)Cl4`-dWz9O@2W8jYOD570ELK1viX(aD^I^kf& zMXkI>I#*iIvTixtC&6pnX1!fDE`A6 zSIz0A;+vAmE$v`X3iAq*Rkv$SJvPz{C&V3y+6VVW%G^LDEsWjj7 z5BTsr$2sS|uHWzbCCuGWC=CdOeaUh#Kem+&ZwhVR!U4)&1Oe)gP<$Ujwn7&hpNHrw1EFk zH-1TFqW`j_z4ijmSDOfFBN7-WzLuQ0rUucx*Q_}wmTr}HLG_#zFirKKE^HT;i+>{7 zi41PZoPhQ750QzJ*TB81iRkj>3l%lWr{UZ063y`i?EE-$5bEeBYLWRgp*xlYou0*B z?lGZOdmqB@;zGI zahl#=p@!1DKf^QEA8!fo=7NWxz`K2EWR_+ss`0Mfs>gdkPFx#b&mCeL>?v)#;Q>7w zr?Df$0%TW8F_-=>gZRtOfj)nTWxgA*_ud#zwxa=M_+I!GpSk3Da2A+$i4f!chmhBR za(~8&p^0k+2~$f)+&P5Yt<5m?!~*oKFN5*trRmHoYGh!6 z72W#uB=_o_1KilV3M{%}S>@9R-+R4iona`-PYp$lvibCm#(DNuqydc9N#cOzRdc^u}St)_ziy(Sp0_6x5b|1i1kO zw_Wli5?3X0q6z7h2sIp+~EleJWMOJIeB>JssI)|^Hb4V7%h(J;NE5KU@><_#ddc| zxK9*06-8Y2VqMgIj5}!a(XWKa8C*xJS_{# zo}WmrTnoFW_cT^ER??2w7F^xt?VM41IBf86;kvzpajAYHJQ(Vu1_|fsOYd`7G+`1s zb?q&?+pw7Q*UdtCwVe>zQ%mOaMI(d9vvGa$3G9CoOBXd?A`;3$a0vrQ$L(n-vQ!In zehA~(vRt%NYQn9OpGc@x0z@XLgY2%Yv?as`3PZM%$krsHU(icBmQCYy)I!PZaetZe zV{-%x6=FfoP!_dA8>oZSJ=S;pOz2LCCVPwC(d9*jZ1^lQIK}VYwuLN*Nte%I)MGEm zn_EUagbVSXy+-A?506Ouq{UceHAH_b*blAO2(d`?;@|o8QTB-s=kO#Eg3qiM2p_zT z%6wO+{lDjAGOL9TTr#QOu?bxC=cS}%tcqN83WsyAelc$0S0G?R7!F`Ow#*2E z8G~Z5xAYmYvYd(j*H|pDY@xT@UzNl7IB=eG6}+T&QlqnJ7`j%o$+s#nc{mUM zyt1Qjt?sbZm*kLK`M~#SWVJqF#Gavn@pJg;;rgEIc z0M&HVp@&EO$y7f%`Xbwt4Y7U%Cl=fD4jmSsj+qB;FE5i5Htp0QOBkis;Pwl8C~T<7&sbuB+4GXUqd`bghZ@m)E00Rg++fnu9S|#GM~z2^(PiHYB6Ld< zzI?w)8ypC=QL_NkyFMiU%1YY(`5QdXhxYckIp>T&bAKlF5BFibE=gQ#!Ma5%spxkb0}s&yEh zaXJrDek$UN^UBPP1XEPb5Q52dG1%=V1zBUpaSOBevbSqAICU39J%652x;~qX3oat= zC2n}Q#ep+;YYAQ+d$Eu21w3+cgX1&yVB8H6cywnA2nShV63>9>{oIL*N2>96v7bQG zq#oxf4Wr$hXCyTC255vjfqHo+hThu-sXO@n<=_}>;nyU(jRt~LJt=`mKc6eeR)BOK36Cb2m?`y0;Mg<;2!n{j#_m zvys_GOmsSoAHIU1{fUsk{lY`EY>%R^T>HsXDGfnL&{-m-eg~5b50hiV*5(#AvVz|m zWVx(k9vG~h&y@G}gZ%yPP`CRuS_b{VdmWEal-O|A!S(c@ej(P%6=Gu15DXe?aGN&fuweB>r(sVfNniDZ%+ODL7>ISKQe^l5UCGs3nr%*r3q=q-Pf=@p(M z_&Fw}V(45gQ->n3bts%JSGbLhX;bl!#1*o&ubX-gOF~0u8twnZa|AYw5Xl3aNlil)w!&_^Q%*KA&i^~3e_`h`mnWg&v4^c{F7Ut>S1p8yNn z8b;dU9HyKNVMfxh&8VTnHSbzw>KNzPuEhn z$@ihzVkcf5j6;+30Nn8Q9&@cMhXgN_g?r*zXt*Vv%&W|$=eszZQv9C8OmGCU*N#yc zI)jsb?SvrL9b{@kAX)GY$^KrRhrHMr@=G64KWSZJeLjzZtpWLb;wCQXct&luu|zx5 z4o{dpLcC>y?<{WPhQWng$u?OqSjR^_V?^PV>r$9*YsCFblt)!3z7MK8N=+oKQBrXU zp9vX-?!#x{g;*SJ87Zbqt8}==?k3(Ba0cJlC~@W)EKGY`g22k)(H+eM^{>&znkzBv ziwK;%!SfMJKH{h{16|)T&}g$E-Mz{ga^6RipVm=uzM}{XbxvWS@g4IsF|q999pT__ z-APOMdE-(2d9+Ra3??64i;p`TVC?Zvw8&7MD9N0opPMvr`Q>yrdVeYSnt!Hq`18@` zsOe<-rj_vK(H>&ILJ!YR6o;+n!^o$fim)MlAE#-afUhs`zP279p@+Tk<@&i8KEV=J z=DGnpDuSjq#<+5=0p_h25ybD_0+U1oh>VaS@zJBS`b8h841J^vvn#2pS0a_RQKYYr zPUgNY)#EguT%_f%v@pBx5p#ceFeH!XIbMg}VC8gCT&p-tuBytjmZxTs%NzNOt42IA z8#II8&$psl^qmS1%`5Qr@;mzaeI^81G?2+fQRo>Ki64e_vFnH!blvBbc^#d`6_fT%o(Uf%OqEL%xU&7zIq^&5Y08EL zX1h9`qo&~!%6=)W5OsM=IxPdyCUgUxW4{!%Y#PnX4qRbdpFd^n@G_G-cCel*q`fcl-=2 zg%--5BIbAhgHn&n^udlY8l4maXPal@pR+ZrYUdivEApZlj?&z%e>w1MwE|v!cBUf8 zdIGJVc^&9j0jBjPQ25ltOfwL{mn*uVRB?EgV%1Bp=UD#opaFuy^NP-1PoD<%X6}wd`h8=6$Q@3uCZiS_?A> zrFgIF3S{IuvZb1}%5zehE&}g469ZVy`dQmxutlSBfHQreM59CAzgG5s_t% z0<*8Hp_&KEu_4b`PqBJ*bj^aMeI3LiU5JsF3nxZx|1nM5`smd77?k~T6U4WihZXX} z6*=?P5n+J{Ob+AshrI)2`7tR@!&Q-t*%ij~N^cRP-x(xiZ6zL;e@(sT?ZnRCeelQU z9%?%EAy$Nj_s`%aCO31ocNB;^tp{R-uyo{WSbISNk@8W-C>qHYWyJ!o!W_yS%82cYg zP!Zu)d!K|J!&Ovo7T*OeUqr`G?lVi$;(hHwJItf5{$!73PbNhUD`3WVE!?v>fLbpu zM7pknT1KWojPEP@n(u6?G~T0P(VZxw)dp3iMQ~MNGMv<}fWHeaQ10SxmP*TzCw)VV zWZ`0L*Nucb;{5*atrnP6bwa7k6RQ618ga7BLf3^ypx1FSrsNpGx;qOX?Yx({_7WeW zxHbsAhR4zGe(?}$q0cIYO3>?kPEG>C@IsyvzT0>Tk3O`aJ$HKOc=cS;m>Yr3^Lv0{ z#QFJNAU@vrjt$#-mW)4E$~^2VN9DF)Qj+qRuIm25s#!M?Virs{->>5{Cf(q;EP!Wi zw&4B=C#i1zDcaO0gFY33lry%XbJI2P!Cw*F?`FuIsr*0=#h*s~6=yK)P%iy^@FN@0 zvlhjU+o5Jh2^@_P5?rukX{L)FR7e@n0WBG9Wq0A1CSUyM+d^mXUcTdZ9n=HnXaBHVN|iI#O%(MjcVnf^=pj7;bn zs*#dK1$?JDwfYb~n>i7a1cV!?9woZc^-yfR4`o`~$vSD?^L?U){*0c1gA4ufM*ePa z_2?yqfeXl;?naVuau$xw^oLU_GB|I#FiJ!e!PvhN;Ns(h7Zz{B3jZ4B*f>+vxho2C z9v5-)r$b==<~`pv^WuHqlH8b&3Al7lJQkMjqM3sun7wb*eAP>HpxN3`uq2TT54*v} z<%^(kZ9i_e%Z5d!@z|B{9LD_(5-4Pq;?kHHSZF8?{=C1kV_h;nID3P*=ryyK$4AiU zfm-sxyM$yu4?&6TZ^(%9Uot4M4E7sJ3T%6a$kv~a@W6V0kGb6t2a^YA@OlUO)Gdjf zpVkQOCxo~yiiJcnToQkt41|uQwqV;gj5Ysw4(QcF_G!Zu+_Hu=K0ef}?lis#yti1XJXH~C+9rZ2vzBdx%pH~oH zyTc%mvEW3$x6u{7s`$Y#96eqNbAr$oba3dzo4FgHaK0m%86?CR4tb;c&QvO`5CGIG z1st#NnWJETx@4v~tZ3%D@yV$$*W>{F%!gZ+C8=?UV?k7_R8GbG`vma#bL zY%y~F?+N_uF%p}{L1)iAeEv;>%R3VQKLejam)mAs z9484LlV-w`fd;z$mJOUJ&nE68XTW8N1SkEpi;Ult4sX>A;Fe^x`O)Q3pp$o*?c!$> zJ|Povf8|@U<&6j=tx2bI-I8G8kPWlJw3Fn7gy5;7BJf#!n)di*z>Z5RV2n}#EXd!A zE8dKO%2Q2d%NzknS787z__Oy zab2N|U{-V;tQr>QK5MtrN#F7~p9%XgIC&z}d{N`<&wK%OBRwb?mjG&F8u0T^8u`)0 zdmpD{qnEZl9Q>k)e}8X+ua>eXcI6D|@BN8;VwRIzV~#+5pFGZ1&Vrk_+UOUTZBW;` znS}M+#?b%?sJp3%EeevfQCyl)%y0xp)d+HJ@*ePv+QdKdgt=x zNT60E3dw9nh2A1~bSWEi8y3^HloyP#_g*ZnjV43IshF^BEsg!)z&3<+0<4wfQsP87 zrBq>d;njHbFI-9d6{NXHwzcBWM|ZMfk|w!+{T-VT_#aJ`PRaj(a$X@5+f(F$12S0d#7(EG%?-%6tzlp(9Ht04G+$^WQAc=F(QQYI8*AkS3B7ZH&WS z9pv?jZs2c&cxCMqGN)-OSlqe-FGa0TDp-zF>REsrKRjh_9m@mH&O{RFQ3IKdk<8qU+IlIOL^bpIaMNcK#?1^-wR>~SK*R} zU#ZN_4p?XNhWhU?<#rtIK>hZ7Hk98#-@Bn>?jv;xOysOV!orGw7chXLR2_7Va-pfC zDMZ3Gi7vW69&9A`fu8mr6yG`%@AhPZPl5)gH?076n{YTy&w)J{Ee=0(cG4`?pJ(!0 z(~)W^ZhFTA!PR$4^oe#leQdZ7itmTu+(i~pb~TRgj4Z{blId9AZ_P*OlSSS}&KG>V|A(sVd z(Fgwx&xo7rAo%}ILPY~f_~u{0j?iaR)3X3|c@Np#+fMAW`{n4QVT87PR^#Jd5pL__ zTpDMQ&!qjV!`0HV0#8?Enl@n+(|3NMp*c%AaJEV5(Csy%P12F0EYx&w?j$Uz9%JCX;B^f2KAyarT7^_FC{k*MxQEd%SIq z`DEIwx%jipk*n5<#|eE~K6L=zC$~a&N+>F#e4>1##8D&JBxmvSI>x5xTCh}e)4g^g?yL)XSQpO zD;?_7G*f&miTxF6#9sV2u?&bo(WfD}NQ7^@k7&@F$_K#i@(i3-7KKk5lyUq{c_Qqp zPT9sm^Qix1$)sn8VLZ1BA8hM^P@ObJ$xaIVg4VHy;k@ToMV(A3Tn*Q{Cc=>phR)w- z2oG9kKy#s-V9nqTbhcE1!7***&dp)^M&>Uek|*$`Bof6B-b~5u4z^=Bk6637g6`Mx zaJ^tBSe2Dy)rsh#X3A$>Z; zPru72lAXhi)avY6a$Cd*RW3}1rF~NLyTMu}wkj0#=P!anw}X%i59rwCPvQFZYI4}S z*UbM_IV#Ou%Sv4BC&!D|fXmS_Z2N|bWa7z_pw(?dY$XWJ`k)K*tH*;c-;D@zqSWU5 zM4*E|$%F|NNcXxzh|4v)YkL*BBkE2D{Ww;t-wdwv^Q27MskleOp8j2$3=V7auo>knZ$ekTIP=M-(Or zoTr*F=9Y!9bliCeDTsr#OG&8uy^Os5y#Y7+4U*|XC7`(~8*h2BAiGb9y6T0(dy`U< zx_cq`@9Snpa{^(xx&*l=-$~<4|3T>87-T*y0Ug%^aC)gUYGwK30lOy5`_sh4S7_il z?jOHT%}4j0Qi45Ux^Rs(N44L0Quik|vE^8xM zi9gxSP;(gn_doi0fjoMI2f@o5ML=t$;MS5pJoWfGL~JdCNyl^X+eN->&gfSx@N$FN zE0v_6n9qJLd=I-kkMq1x1#A^MO+F+T(#FWo^x5%=g3+OeR4C>)zN(ZmF`h#5X6(kCMdDz-_zJC&Xk~96ct9joz7p}pQ|W=XFL@po&sHy(L8lLufXaXF zoJ&Fmdr(4x3w2QDu01d$y83A(W%glOk#>r%iQY^XZC4ZM3EE+|@a{XU^b>F>%Ze_8eL4Rtmvy zfzg7(deY0%&R>==>7FKf=j%w?VM@W4IT-kyg^w^=f}Y6u3_#$e5STYAfB z$b5qTMI3rkPpd?K(ysdl$@=x`=s6Gv?@S-U3eN+mcIE&%{PaS_vQzK5X&cn=mtH?r z5ibO(rABmh<54^$@5FnpLq&NIa*&KWeuC)a8V2qElVRuFJ+nc zhv~AVcOzicMMwD5T0}ec7vWZ(iGOLo1%t8=@SS%Aqo;cocKw}6*_~tILSH@}x0T`q zHW%Ql#7pz}hALF-fe~D$%Jj>R2ne&D28z?f1uaq!30GZ#p>sY!fBs=mlwXhgPA-5a zs`E*SZy!}?-vh6MPZP1p8?e-$;OGkwOnKW1QabA@Hl10)9Gcoi7pB|;;rStOI6@N# zHg4cKMsG>4O)XBfc}2fA&gC7ra)RcQ<+z-azzH)(=%{xOb^W*rDt^Vll1%`1ePdyn zgA{hUDB^7KI6NypL73l{0d!5p0ea<;jHmJ4sk2V4-! zp4?34uA6}OU54Q9CT-5m;}qFam_+P{L}>Lhd9dns2ETtjXfrZ}Mg+_jY*L6PLHESD zw+S!kx6Bd#z9_@>CGqbBEq~cfI%ceX>=3#6o}Y8t%%c~|II?!L3^)1b8mJlfk9L&Y zB3q`W(%7zCGWa|Im8RcA+grt8sJD@<9cM)=-tQK0`BtDYa*vv2ePN<@{D%e97aDiP zf}f`Ywr;bAx(~kia)Akn=AUtTViNEJg>aT*Bp9lmBzOA4=)NBsoawa&Cg(>MluTI2 zR3^{BGcHQh@830eRz4LsSF6K4ua7if#uKtyQ-wqtY0_7d9z)Al7c_MVhs>HNXs~&O z=e?(qxr_9uG2c~F@cBv>?Na5smpq088R-~5qa6;-9s>hUH^HxsS#)**@5xp(0a3O8 zaPil>#KU5g{AVT4U8>#1yBPi8)$A-dI5~+mkPLx)KcZ>+$QA6qbser~6*2){R^;gk zEjDL)CH|Y!#EA23usY>r$m-R^6mNgHV-$vepKSsGzXM+r6py3c1HAVqksS)GA{t^W z4uxN!f?s0X)qEMopk{!6UE6}IBkfS?S`{c==3U^83z+@Rz2Ly_6iXs+&}B|a7=CLN z-rzk_u2rkxj+-oYdLE=<+d}w0PckTnokELgdq7^?4YZaP@~qjLXj))OzSQTTkn9EW z@W~3eX}25?xK_c>hHbF@<~X$2sDS>)m)NLEeeyQL7~ehAA$kU)M8|ns#b9bV{%7!$ zO%a-gxs!xBSFKbMZxxK$0pi^Jp3n4+=6Y&n5)D?eiy&Wf4whfqfD8Y%kPctoZ?pIc zi7Y#0UiRJ_r;LxJqYihmC36OBPd!DhW(Y5k^|?m-XZxX)Vl=ou(m;*$wm-`#wT+POOHUzFtOR z*qClPYe&a8G=qNSSa{pq!x)}W#mDO%pfjy=q1M46^m#gyzm6K|8aHj4U&imvj+9^} zJjN#8$#SYV4)vDW;Pp4o5NH)kTHY8yb2#sTXwAU1R8uG&2nOF)AK2Nv3MJ%ZVXN>f zG}ijeG$Da!4 z5XM`;k}WFD(eotQ+6D-OBmw0))*YSGz|;C?nYzMV*W@lKvs|Gq37B= zXxU&W*(D||P|Z<5?Sk**@9*>QPx&=wX7KhGc^%?g;tmB3!rYR`NxV1c47`_5!V6an zvG|AvsK}lp=j`)fm5n~U&szgC?ptHrUnNYzxscF!g)V)gfS+8G!0p6p`fO!8>(PD* zHylmG{kv?a(UAktx~G5$+e!;&oIXg0s*31GxoT3IJw#1{*TGLFmfu|8Mpi@t6l+*) zeIARJ=^e~My?69xu{4~J6otn!`#^ZRE*y0Xz}afGq(gEZd7T#t`UVSOFY>+E*$EIn z=K_)VI~Micz2*7DbD3k&zv+)xm*^!WX->Ul3U@fAi5S(qrqAm_;IH&7oL0Y%k$>et zt&i`ND=ug-UzI>iTQiBV(ibZ#2dCuC-0ND>#{9dPwYGx*)s1$#XQFx9^ zKtT3*jKcjko|{{%2N?si;NfLW5L77BZ{9k%>hfCL+hxo;Y=1&U&PL+gp2tjlIYO0; zF;%U4Lk_R^#@t?>y=-_Mz3nbguk`OUL^B%QzTPJ{p#zipis3w;$6eiM&gY<35wrVe zQQ~9}oD5|lTdQb+h;}D+HNHwi+Um*5CyU^2SrV;mF2~9vS77MeQ>43U8w8n1d_1T|!SJ)yw^vtgG<7TlY2mDK6X=lrv}Nt8eDbX#0V!kRwQ4@spk z|DPj1*mMhH3vJ-ag8y)K!(I}0ajak*&r&5Fzd^+_fvq+-g6|s&@THFcl>SX*ZCCO0 z@BuMcJN*IJhW^9D{7%*{1%F7 zzvOVa_>b*uo@gIommPsgN|ZTj|?n5;);H~3GDc7dgOJK4t(PS$saT;!N?N9 zCr=BuO#MV^1{BHt#0u0LBZhjB7wKL1M^tz96L=8wn_9wtxFLUrIpFe-o@k#5_eArl z&IiJ9`$PqkcrJhZiGEfoayPw1vf+>U4ya2nCqMNg*d4c7nC`w1)_E(^fyesbd_I}p z(SA)Qb|XEoH2@bENZ{7IKJqU@1&`$zm>WIzhLi|Z%uyE+7`->dsNXfQx(x-l}sWtH!^N!ucisFgam2MU$AZbeVCfki|M~bIPnwf zU|8mqK;_jcfvemiD(Pwm1`p;@52X;g{?tYMrXVIzdbbg|DM?^6dlU5OoF$5?l)aYu zhVOk&#NVzv;M?v6c(m>wnECZloma)Mp1!0OQex;hX9yfpe6g$72%jHL#mPEBu*i|4 zGV+gcWYsyg_WD2id2TA0x$VUrG8+YR+@?WsO1Qb;<7av#N{dvzIf$M+1L3&1C zRaDL{NGrjM_haGJQ%ymN<|I0`{1p`NbFAMrk@T2L96R<=1$r-835|EhL)SPRv>!T$ z#%%)9l`>6W=skw!Mo3eA!yEWqBbXe~ZlX)Xg2_eXJ?6hRaYw=rW81PtC|0o?t0pZH zJYqIt_pha(Ve}SGu3@+(U61hB$WEMMY6HGY?Vyxrgj?N><2xI@JVR;}CM&fw9kR9b z>;-LZ>GJ@3Xj=}vm^hW&yO8IS?0QTaebwNxfjK1VttRVj6X*^1o3vERT5yify$L?6 zq2^dWSPtTx>)I@+oNo-~e{vARWwG8V9qq>bgf+e_=Bc{Ek=<_C#RQY@N#F3U?Jzb8 zx^Te?Stwc-Nd9I9q2|eT0&8P+V*lVjVpwJ>2wn0B#S)Y7v#=*TUlm84RQdPIAQ?26 z;{$X*i!th!?B}R{9IN^OHridKn^qs@-1gZJiEW)1 zxiHB8EkZ$swB70^41cM{rinwecfXwZy-^i>WA};dmus<-+sSRy6{}@4g^L{QT*n%5D^FoFWjs z5XQF`_o4N=HZpP}mLBg)prRLy(X#&uymkFZZXej0fQfBW_(Y}Jrv*q_1yM#&o*gTM!ufmAVyywl64zLsM*$P^1IQt>`FC%-qe@idVJJyKL5Vs{yQD+iTxu% zzhC2llEs)!6wq+c3vKpK#Lv3x;g#^?3h||n*k}BiZk66$IJ^BD^Pf-_DKO_}^1jM& zYhx+-BE5h%$DV+{IxC1{+dk4Q%;$d!FTnj2El|6=1@~AlqJKOeu^9pdTyj7TJ^6D2 zK0b-{g;Q}+xhRSIKEh5{7@!@E17NfJDrE}2;M9MasCqFIPqxHBr@0BL^Ssnb?LW*; zQb=2tO%U9)6(v$<_hQtn272K_4i45$fHk-N5E>OgGTS#$WNr;!5I=V-x9?I0cccSh$T|>G$${gv0YON=?h+gx2F;BGI|KB?<$yQuQ#XT+2df( z)#0}>YvK1lQ$}lA511?~L)q425D}wHXN3m9;VizB`gal}SA|gBgv%A~nHPxH_88LO zQcdL^?Z7QMvoTC_Gn=H*Nd7d=Bny^_;48k%BDdKHA7(zp?b1BYf6NkOW~vGn`F&w$ z#U)ZD?O-f_v6`Fau!Ejp01|gyMnitKe9&qfSnT5XT$vX!xLCvXx6Ol=&5k(urj&12d&SjytlVom|pdi|gh@pu2t`sD*!`e0La>c0GqPHo|mJQ zJ@I72Hg!RVPCc30c@+|@h3K&%9Xf1VO)OiB!9hn8dv2eE1v^bZq-8qSG1-lr>(D{j z!Vj!hxi4Bx29)SDp*E5tf@fRyk$?I;uOs$2b>HU)&S4QGRsI!z>Qkm}V-JwMYj|(K zvr*DlJp-B8MR*{HgHH`S%Q*W2_5=bpkhK_ju9lwqB_^oIipQrv@-X?pF&z4_UC{S& z4ILf{gCLbp?16^Mc-eCqD5P7U?gDT0-K>nKi_)P*#RtzgUS{Rbjuq^?-ify2;#|6t zIOIQ{!_9a&hKn^C&pkGK4r_Y~%r^~BhV=f&n5c4$^mZn5%>kY?O)?I{uPQ)epEvU+ zbDTgi$&Va7DJi&lJ)Y#Pc#WI;7J%E9dNT1Upl{zJLD@eUF7`_VI0kj0LDMFTb_js# zcjAIYe;Of0`7ZrBY9*N0!*HMK%5a*;bux9z7|wI(e)&a%SZuTzL;nn3hc)R^xN`X% zK{Z7jGt@?m7P@jr&%FoHOnb7v!4_6L3*nS<`TmaOCODDe!3oUf@*d=KD6g%JI~qJu ztV4*a2)E&`2}yIt%jH4WSrn3cjKI-18zwG$f*lK|u(FE!@NTklsmwaMWH2s8bx=nVUtG777V$ zl=Javq80gkxEfABSKCxD*MA=%(vUD z|4t(q^PmAFilvzAdwx@)nptGjx)^U4jA6(OUtIHSHCzgQK%LKr0Ph z=U;-k*CcLB*G5|VBOle|c~1g=ZSVBHhi7B#NlWKyJd$ONM~*)w#->xzq~bY~aYzP( zBgM(N${w)uFrYctggC`STk?Yc+_oss;~iqLWZXPi!Q>$=*cWn*{2Z$ZUis>HI_eYs z@pBi{S#~nddMZihR!^vSqzWA6BMnY&O(DmsQ%>rlHEjUzQMbNj@|0 z6On@|V{P*Ev_JAA9WY>=QR>kq{1A*FzHTcuuQ3xW%sJ0ZJ={Wm*tgJV^D*dII+Y&M zXvdeib8%)J$2Ny4b9IK%WJ!N1*>K|!UK^XtdU;>Nb?fGlUupo$i=;^9;3XHat(R{w^BDR*?rSXnR*r%2b%au0Mw6}5C@G%OlGiIXLn@70x-eE8b%Yv#abLc19 z05-BSIpaM~$(VJDoZ!PKlkq@Yu+jY>9qD&M1O0UNva>d~K1UZP#@w&?{>Ticm&ggi zqJ1!-FaqtX!UZo?CGgpra{gIRNxfSamWe#F0r2i7NzRg-Z(bCxANob->Yu=;+De?# zK2Mn5}Z!9{nPt@%E5x?MIsDs^fOqpK$cU zYx?kH5$uZdg2YlIK}1_1-ks-6tSa20I4>0wM<;P9<4w?cKo2%2okq_Y9gNMkJFs2( zKYSf7E4aHP8IwMwGkMpK;()U_mzI-CA1<$8|J>#o&`BydOG}PhQYD7zkr`k&c_)PP z|7)fqDn$FR7VlxzN6o=3_|?ome|9}3mscF468pO`);<;Pk;6EoxRUnIP({ZT4~h9` z1(DgLjZ#y8z?O|y;0XUS4@=A?n{{6iw<;gh4YwwVEs^BWb6-}N=grMrvN9{zInale@I9YtC zq>Mk7eS$=_m-tM}AABQ3VW}4X-sUVr?Q9maYP;s3*FYxBvu}rFm2>r2M~wF zOL3x?6;8VIgeW~bPn(aY@eI4U0z={Pyw^GsuZ?rZb*n$oi(l=yB^z(D%3Z^x=W8-e z_39_dmE(xI&?itXl!j$L@3BJ>9Wb$b1kEN!Q{O!`v_$+2pCK(n_Sdkvt>rJ=zo85) zj}lzDh0mlY_TdAQDI~~rAG|XuK?kGL#Qo1!MkdFBd>kK&Hu)-eWn?@D*=Jyl>@?Co z-v$jl6<|(K4+&I#K(y7yaQ!QyiE2bM3F^O2hpTzV&#evkTG|u8q#3}2IaL_>w+cTl z7NLGMd=E!Ffb^^!g;&w?WWusheC%}wwyu5w&70@LmkHY3z->8_LUV}rz8d`ZHJcvV z@Q}2KzGW9wMuM>KZ)gzQ1f$tEaCfK_MLvHpWs0ca%tjfI7`aNVQfn)yZVrBEy$=c{ zF}S+U22L?I=)a5WVRIXwet4Zhyr2C9)iD<6crc0{!r4$%!}Hjtg!2&5Hab*q1IOrL z*dD7xz^oKaZe_!Q2&sx~NnQA{;R(Jt&<3A74A>L*^4X)egayxsmV(?aS30|ECwTOk z2$~NaWICLlLsry5@JJ1VH`^Kb=-5ZCCJoXzpF7!wU$yAm-y48g=??cPx9srBUeVHQ2Ed}JPN0?R?R3a{RZe2^Ae$=)v9^&G`$Egd3BI}+-1WhbBYlC!i~sJ z9s@c6TP0uqNNp|MS(8z* z^PwWmEEnM2)SJv1%aa(tSQ>u54CcGDkD0BvhAVE@O+nqVaO}J*ht1N@q0!3_FLiH0 z+kiyqS$~BN-xFFE2=z^x0=3qEBtCQ{6zBz!56zWCR3@AY z+GK`$9yK%}H41l!{UI9v^?<(pNlbemPlOCqK($U0XFS^mM~_yc)NfN5s* zb#$Y-Wl8z?ep&&E(m#dI9d6_G36cWC+V9Ll@0nzW^$#L1u@aikPr?Vj{QG9= z1iYl2N#`?{7vn+m>_he1F3h2t?Gq?>h;#{c5 zSMtM;W!(Zk;`n9eIGuS!ET4#Q^0w=6zl%7`)GUU}OKpJ5KMr9jED<*EL_6PEBuLku z74r_KG7EWjPwD>@op&Hs?;FOAkUff!RUs8Zk#U~;rJ}SDg;3hNw2(BAksW1^5~3&+ z8RxkVDx#%C=qpLurKL^3^ZV=l|2^w|uKT(^*LW`0Pz!cszJ)*8a`c{le4YO62C94O zDcvrvOy_zHlRl=}Mr*}*&O^o!nr$Sw1=V}m@0l(5MJpR7`dp(=Z<=7QmJ@qQR0}={ z-0))dF|6Dxgt|+o;vv(aI;)xCP!lza*vud_$wm!+Nwks8KCbXJB_GWsy3lFgL>Ndj z!d%xr{BNrTJ%=pwRz}l9^$yU#_%eKVQ9-rE`tU%4_X*0(6@2QuLciE)QeXLrc+@Nf z0^e-JxT{sDdD|YoNpT>pm`J`(b|bA0-)%0Oo((45HJC288^ZrgB*wf>IBsSrR!ZH3 zDm67u@whV@6~uttv3cwvjg@SRG!tRj4TwZIGs$)iN%fKL_5haowsg~1ckbA`M+>&O&`e&u^ z=gSS^Vj#=e2#4aNC5=2MO$@bMMaYR7adb{+z+p}Vz7$FauQV4Nw3-M0IVO16c@-QI zzKWZxikPA!Iq;!=A(z-vi$r)kxb$9vkgNeY6OJs}oGcAT=c2aG=;iaPxD{eO3?=II8sf3GLlq&$KAu^JEhGw-8C>}qax z(k_zLSOy=$3visvZWt#pK~Zi8HET^GMln|*vcC~E{_kt|(H88CR>mLc{Sfcn3N}4| zsPqFJ(zf#-`%a1X7JVF~S!=JraDY9O_KFA$_hp~~s|0#a{^Gq)vI1}BAw2A8ftUGt zD6^yml;7(?V}?3@IARDgqnTPcU(VuhGcO0xPV`AkKU&T0IDZ$3Mp6OOI1z;ob9Wj-NADecM2enw{3q0c`It$rzz9KS9o z5;Vi!@D4hV-bcEpPR2=D$&k`_0`os~;ElmDx^(eHlI_z%)dS|hrwDT<<}SaJ+qWA2 zYwE^{A5N1vAr-v1)sY^l*aKt#6BayJJC&wge-VE39V;u0LR+{^wo7IF3K{1#!d==HA`QT zsLh&?_+X4+L5UZdSK5Khm|}V?>IeMdpPlJ>+lWGsB|7OS;k?q9xaY`!bW42;tvD;n z&Hu9ka@tI|()U8>x7Ptaeo@C&#xptJ8KtPOCl`7n?^xZ?pN1*QdC5(O7i*+kg`TQJ6ss}2qy~k zX#9;?xQg#4^AVfQdwovXFpuiMaaaON2gHf{^;GE9o+(&fUe0W2Od)@VgRttC8%aEX z;MMvA_0Jh&o2P1B)JI1mQPqdd&(6X6b3)wPl-;mc)>2@=FD-j21~GSb65bgMBQ;tw z+@lv#e6O4mWOTbjzE&3EyF~LKpTj=XE51dV1$klz; zD9}xy8xQP(LyIMmZs?^4HpgJa;cal)^BHvevg}H+SkkK2Z<99ik4B%(0iP~2dL=!E zD4ZLHfr53+-m_}F=f)WSS^uVEwKs#-`)p_*lE4M=?Ku5gI;vAk!4&-U!0RWc$%uO@`SZFF zQw&SNFei!TPn#fco#;ykzind&MMH4&_9N7<@HN@cKG()tunJ8c6k}0O2z#K;n=$)) z0rV9wV6(wYc)i5{F58N5(YLQ-q>qr`PJRh_A0LeG-Xvow(?b_duoCob9H19`Gw712 zK2&mD4$Cj|ePyPHX!gc3cJwCSUs=FE2YWW+*)SIG=z4;Z+bPi07)$F{)MMCFAsl$6 zK~@HyXBH+Mr@=gf^L~&WPS@VS{IYDKlS^cY+Hw{j7-}-jc^R;6cpCLhnom>q9+AI_fKQaRdcNO zs>QaA@{HNp46L6qmdHkLAv&v$p`m9xZP=IshnwcY(=q|KzQ2^2I$BIePOlVf%U{Yp zNeyKV$0`e$tVlTLEDaHd>)GV}L6DSF1SaO5Hhi%zu2I>8p_2(bni4>AzDaZ5&Fyon zu3v;HL)Wov?N{WD1kwh+`xRlw!}SCo6`K=yY2g)W`jOwUUpfkj3%9@3i%MWyj*Iexa_PN1S- z^TOGDZ<97RXZjZiwVBC@^n{aeFJn&P!5dI8ti_f@I}G10g_u~+&$%J63LNR^B}MM* zvxT@({SHxiUV?_4G#*HK%szN}4~i`I^BSx=!Dq23w|t0LzwtmLDLbyb_z1df7X$rE zDxmVp9h{GS=Xa_TV2VaEdQW+YO>d|0--?&ijAvpyYi>j>4-2?es7Y1!FNPBLDnX!- zDmQ$z3)^Si!a((z_|-8NFOx8M;TO&(e7{5sPgQ{Ch#AM2T5~f~#Hh`Y8sP5tlgxx~ zd|yT`vAcDO3XS`L9)DL0g2!CJOZKNRx?~@XPV0nJUN_m(m5-^iH5g_)jCx|orZ(_gcByN)_kgIL_0*kEyP^&iq=T?NnsY^j* zT%ZCc`EV+E?vM)ylVh2@$*E-D4>|6rvL)w9{YZnI02MFAL z^@JJlqN|KiTriWC?wVgaxu%Ep*nJct&XkZECkc3BbP$_dB)JmdXS6n6f>xJQ!i}y2 zj9B?N!3w7UC{9~OJVtJkvjGfI6fK0+ZT0k$RTOxQm4^FI^##G#Z==kkP+0sU6E05* z#m-B&$yDYTRusjdk4OYnXx@mc#l&&NAz^ZeD<$@Yc4)x=6}cv}abjQy``!HwDIRCU zOo$_RX+l4ahzam`wjng$2*TaL6r;Az05y+QaMXJ*{5o}p8rq(L=%m;5EjI?@L=qtO z&OiKWIS+Ea+X{3)c$1d}ychSsYq)8fBGa`sk<~rch}}nwabuJTp56HXin|_Q>Fan# zYef$?~`wnM#nMK-+U+Y z&+Hf_JfkxF2!F1P>1OLj%fPI$p6S>6NWFb#5zD2=LG921c>d%SNb_c^$NW5ze4ppR z=!d|KFDCTQzb`~Ms0Ult@f`&GUV!I1v92Ab@xhrBIPmc-IsB^=g*G|kzjax-GUYbZ zeoce^2!v0oU9oA)1$Z62mJ16_A_e0ekc%kb-%Y3COy^_XtDcTa6+2KX(;mbV?$RaU zf7l0_%{X@99df5VgnaFh!9cl4x_(kVh99uu?_F`usx*_-Ss2liaie4d_~4cODcI9C z871RV$%IlnSexX;Hat0w_Rh7iZ&MAq`IN(`*uNy{YlYS9Z^Eeb@ijPX(FE-fOT3ud zjsZIl;iP9%*p2#qxUjE+^*;H9Oj(nLQgM4ZHoKHoo9lw5uo$+eMdCMAeTZMM7=08G zmgp4WqugbDNBVPgx&ED4I=w*YU(*Ed%PDc)F$vzas(`nj0A`Iwk_R`X@K^sbvUu%R zJlo0_vmD67)l&7Wh{iqo<#8pRVy1#%`$qIxYKtpwU%-_$@${U0E&ls!K_B?{(Y)1> zcr4z7Mwu?6Lzg1(v*!<<@1u(I%p%x=#CSZ%wBYaaso=GGtzfx}F*mjOFIsy($L+O= zHm|47B$LHGnU>Z82%Wu*{kMtl?cF5LHSxP9lYc_oGK*Y@R#n0EldZWgB{x8Kt{)l4 z&-t}8%<#{D;y7hE6sq(CaIuLA?`^AuMQcKF?ZR04d6FMQI<14>`=fEIyAbDQZ~|LK zd)eWeei*$=fhB?r&=&l_`4h9rE|BlV)}qHY^)e@_YMI^Z zXFx%;6!s_Tg2kP?^xP3OZgOi5*!6y+|M4#zY4Ke4Mn@xj%`e5FUKzoft%lHH?!<&> z>SAf70*%!=hL4{JK4 zJldd(J}o|6YIhN3Ox>XLP%~W8(4;c$iP#yk69d-lf(bt-;^SSOb*qQ-sNqy6!SdtX zj8;}CIiywuW0DWj7W*4`Z`6deR!kGT6$zzUB1=GZ?;Z60_5<#2)P@a@VnBVmDuk~- zL{nb+K-*3$eDhHQH5xcp6yD=kquF#tO_gpP>(y2V<{>9!#!ZiXEq9aMg`g;v@W#EOL>?J7Ib-EL=@r z`i(*RPvInEq8fWlMTvx`W&&PQhA;Q0ljMX_>oHd)xxrnjXuCEIA591q#C*JkZMRCn z!~8l4`Miog33j71L~Dup)5%mw*o}Po5lug7gz@j7HPD`t$lh-s2ajcJ$vl@gG;r5C zobn_c_s5*XO$ndy@Vni(v3fkF)g436`jb%997Q~>;_BjFN@CiMSzP_1t<>;pFS$?8 zk&BBzqvw_fEP3*dZq0NewLf>$wZ}bJcHwJQ@$_*refMwrbWJjXnX1B#Tp@qyx?_up@Wecx*BZy|SY-~i*O(&hp ziqTtt63pr=g{NLD+xL7cYLZkeGfF4PuczWG=?+@nIt?HG45Y7aIT6p7_N2zXBXk{8e56KthNJ;nK+9BKTr=?ZmPT~2K6w_)4@ zBYNUU8|M7HfRBVi$)+M79JhJ`R{m)NSHAypZ)bMhjeXMOT8>0r-o{gr7y{f2v z<_3J$3c?u~@i^Z61>2rv#LSK3nOvGIJ>T?>@ylkRXI@;LmVpDA@O3FoaNI`k8Qy~v z?iG;#U=!}p5@nB_Hskx&eQD>hhcsERkaVd>V8WCG*l_(nOt>zAGNn<}zhMSy{fL3v zMJj^JBTcC0VodR$4{petg#P(@TtmP(GFe!HSo^#rWm9jG;aHxXr6xv<#~IV-Rvus) zCIS8{(`?rH)-y8%`7|N@HCfla5Y7L5C&6EA$YsWx2X0LY)e%uZIFM(zJ4L6vqWpOKTmk9BP@=jI+fVzCbQ{;jT=VN4WnV~IMlX05So9sto4a&)ZRC$!y7X>T(Ho;}p-&E06 zfv()ovoRLQv6-%WuwWz!SNF-{BegSDlHwu6I`b*IfBD2_+DBs3_D=S#>pwcD+8tNU zh^;%UA!_5*7Y(L8$6!#y3A>*?pfh=1(eeW(sC2{xOrzgY?T+gtJZ8Qx=zxt>F+_hBh`hfCrQIZ z&8-;mR|Bio<)G)}82s5VQ!f9GX6ccIR-hMhkyw6F;2x7YYg3o4`M8s` znYJ@?_hq6{`T{IXup~d1za#IGc^}NV|UZ`iL-FZR9k#qWI$*8>cHl@IxI@^Lxsg# zaMOVw#O~1-*8O@mmQ-A#){g=(>aC>U;dxc~eE%#8pSysD)RKArFOIbTtA`J2(!_7H z7-e8SI-7hZg%z|MKPu(GZL9`}C0_kS8N zAG%n&Gy;D1-KDT{18vuw&JFq&G29gkR^?d>c5zwoLQqacHHx7xmW8DW`*G#(rB4*zc(7;?m@K{TSQA*?e6+a4~aqBNuieA8(%Vcp2pMxs-qr%_UqeSrH zFiIUQq!|B?WcRCaI__urebz&EU!^Wlm*;l`d-#6I@H@o#7{i(*MbHy^=H!P~C%U%t zoRn8ziA!N2)*LJ%WfzC(^r?32l*y0iovRb+x69SU>#I7JKWfJMeZg>P$~#j0*p_q3 z`$|2bm0jVz7@rjFgZZN6WOu?rurzW6S-rU=C?ge4mY}chZPwm* zHLm|d>65}5xac>4?hfhHW}+s&nHdjbhbNJr^(>8;d4Mh2<%l{f)7d;Kh9k8v>ukDR zQ9-|s?AdHf{|l9(id+K5jQdFUjGiSC5&1T)g*Tz*$XxJ$*l#l>?n>RH{bx~SuMyn- zU07$@Uk~calOe_VDwvIN$N7C*QNs5Q8)lIW3p5s@=yD@ikm^FrJU=sßjp+u0) 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

    o6Y8 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 literal 0 HcmV?d00001 diff --git a/src/whisper-arch.h b/src/whisper-arch.h index ea2cfd6013c..4253a88209b 100644 --- a/src/whisper-arch.h +++ b/src/whisper-arch.h @@ -139,3 +139,59 @@ static const std::map ASR_TENSOR_INFO = { {ASR_TENSOR_ATTN_OUT_WEIGHT, GGML_OP_MUL_MAT}, {ASR_TENSOR_ATTN_OUT_BIAS, GGML_OP_ADD}, }; + +enum vad_tensor { + VAD_TENSOR_STFT_BASIS, + VAD_TENSOR_ENC_0_WEIGHT, + VAD_TENSOR_ENC_0_BIAS, + VAD_TENSOR_ENC_1_WEIGHT, + VAD_TENSOR_ENC_1_BIAS, + VAD_TENSOR_ENC_2_WEIGHT, + VAD_TENSOR_ENC_2_BIAS, + VAD_TENSOR_ENC_3_WEIGHT, + VAD_TENSOR_ENC_3_BIAS, + VAD_TENSOR_LSTM_WEIGHT_IH, + VAD_TENSOR_LSTM_WEIGHT_HH, + VAD_TENSOR_LSTM_BIAS_IH, + VAD_TENSOR_LSTM_BIAS_HH, + VAD_TENSOR_FINAL_CONV_WEIGHT, + VAD_TENSOR_FINAL_CONV_BIAS, +}; + +static const std::map VAD_TENSOR_OPS = { + {VAD_TENSOR_STFT_BASIS, GGML_OP_MUL_MAT}, + {VAD_TENSOR_ENC_0_WEIGHT, GGML_OP_MUL_MAT}, + {VAD_TENSOR_ENC_0_BIAS, GGML_OP_ADD}, + {VAD_TENSOR_ENC_1_WEIGHT, GGML_OP_MUL_MAT}, + {VAD_TENSOR_ENC_1_BIAS, GGML_OP_ADD}, + {VAD_TENSOR_ENC_2_WEIGHT, GGML_OP_MUL_MAT}, + {VAD_TENSOR_ENC_2_BIAS, GGML_OP_ADD}, + {VAD_TENSOR_ENC_3_WEIGHT, GGML_OP_MUL_MAT}, + {VAD_TENSOR_ENC_3_BIAS, GGML_OP_ADD}, + + {VAD_TENSOR_LSTM_WEIGHT_IH, GGML_OP_MUL_MAT}, + {VAD_TENSOR_LSTM_WEIGHT_HH, GGML_OP_MUL_MAT}, + {VAD_TENSOR_LSTM_BIAS_IH, GGML_OP_ADD}, + {VAD_TENSOR_LSTM_BIAS_HH, GGML_OP_ADD}, + + {VAD_TENSOR_FINAL_CONV_WEIGHT, GGML_OP_MUL_MAT}, + {VAD_TENSOR_FINAL_CONV_BIAS, GGML_OP_ADD} +}; + +static const std::map VAD_TENSOR_NAMES = { + {VAD_TENSOR_STFT_BASIS, "_model.stft.forward_basis_buffer"}, + {VAD_TENSOR_ENC_0_WEIGHT, "_model.encoder.0.reparam_conv.weight"}, + {VAD_TENSOR_ENC_0_BIAS, "_model.encoder.0.reparam_conv.bias"}, + {VAD_TENSOR_ENC_1_WEIGHT, "_model.encoder.1.reparam_conv.weight"}, + {VAD_TENSOR_ENC_1_BIAS, "_model.encoder.1.reparam_conv.bias"}, + {VAD_TENSOR_ENC_2_WEIGHT, "_model.encoder.2.reparam_conv.weight"}, + {VAD_TENSOR_ENC_2_BIAS, "_model.encoder.2.reparam_conv.bias"}, + {VAD_TENSOR_ENC_3_WEIGHT, "_model.encoder.3.reparam_conv.weight"}, + {VAD_TENSOR_ENC_3_BIAS, "_model.encoder.3.reparam_conv.bias"}, + {VAD_TENSOR_LSTM_WEIGHT_IH, "_model.decoder.rnn.weight_ih"}, + {VAD_TENSOR_LSTM_WEIGHT_HH, "_model.decoder.rnn.weight_hh"}, + {VAD_TENSOR_LSTM_BIAS_IH, "_model.decoder.rnn.bias_ih"}, + {VAD_TENSOR_LSTM_BIAS_HH, "_model.decoder.rnn.bias_hh"}, + {VAD_TENSOR_FINAL_CONV_WEIGHT, "_model.decoder.decoder.2.weight"}, + {VAD_TENSOR_FINAL_CONV_BIAS, "_model.decoder.decoder.2.bias"} +}; diff --git a/src/whisper.cpp b/src/whisper.cpp index f8707e73098..efd456801c8 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #define _USE_MATH_DEFINES #include #include @@ -4342,6 +4343,1192 @@ const char * whisper_print_system_info(void) { return s.c_str(); } +////////////////////////////////// +// Voice Activity Detection (VAD) +////////////////////////////////// + +struct whisper_vad_hparams { + int32_t n_encoder_layers; + int32_t * encoder_in_channels; + int32_t * encoder_out_channels; + int32_t * kernel_sizes; + int32_t lstm_input_size; + int32_t lstm_hidden_size; + int32_t final_conv_in; + int32_t final_conv_out; +}; + +struct whisper_vad_model { + std::string type; + std::string version; + whisper_vad_hparams hparams; + + struct ggml_tensor * stft_forward_basis; // [256, 258] + + // Encoder tensors - 4 convolutional layers + struct ggml_tensor * encoder_0_weight; // [3, 129, 128] + struct ggml_tensor * encoder_0_bias; // [128] + + // Second encoder layer + struct ggml_tensor * encoder_1_weight; // [3, 128, 64] + struct ggml_tensor * encoder_1_bias; // [64] + + // Third encoder layer + struct ggml_tensor * encoder_2_weight; // [3, 64, 64] + struct ggml_tensor * encoder_2_bias; // [64] + + // Fourth encoder layer + struct ggml_tensor * encoder_3_weight; // [3, 64, 128] + struct ggml_tensor * encoder_3_bias; // [128] + + // LSTM decoder tensors + struct ggml_tensor * lstm_ih_weight; // [128, 512] input-to-hidden + struct ggml_tensor * lstm_ih_bias; // [512] + struct ggml_tensor * lstm_hh_weight; // [128, 512] hidden-to-hidden + struct ggml_tensor * lstm_hh_bias; // [512] + + // Final conv layer + struct ggml_tensor * final_conv_weight; // [128] + struct ggml_tensor * final_conv_bias; // [1] + + // ggml contexts + std::vector ctxs; + + // buffer for the model tensors + std::vector buffers; + + // tensors + int n_loaded; + std::map tensors; +}; + +struct whisper_vad_state { + std::vector backends; + + whisper_sched sched; +}; + +struct whisper_vad_context { + int64_t t_load_us = 0; + int64_t t_start_us = 0; + + int n_window; + int n_context; + int n_threads; + bool use_gpu; + int gpu_device; + + whisper_vad_model model; + whisper_vad_state * state = nullptr; + + whisper_context_params params; + + std::string path_model; +}; + +struct whisper_vad_context_params whisper_vad_default_context_params(void) { + whisper_vad_context_params result = { + /*.n_thread = */ 4, + /*.use_gpu = */ true, + /*.gpu_device = */ 0, + }; + return result; +} + +struct whisper_vad_params whisper_vad_default_params(void) { + whisper_vad_params result = { + /* threshold = */ 0.5f, + /* min_speech_duration_ms = */ 250, + /* min_silence_duration_ms = */ 100, + /* max_speech_duration_s = */ FLT_MAX, + /* speech_pad_ms = */ 30, + /* window_size_samples = */ 512, + /* samples_overlap = */ 0.1, + }; + return result; +} + +struct whisper_vad_params whisper_vad_params_from(struct whisper_full_params wparams) { + whisper_vad_params result = { + /* threshold = */ wparams.vad_threshold, + /* min_speech_duration_ms = */ wparams.vad_min_speech_duration_ms, + /* min_silence_duration_ms = */ wparams.vad_min_silence_duration_ms, + /* max_speech_duration_s = */ wparams.vad_max_speech_duration_s, + /* speech_pad_ms = */ wparams.vad_speech_pad_ms, + /* window_size_samples = */ wparams.vad_window_size_samples, + /* samples_overlap = */ wparams.vad_samples_overlap, + }; + return result; +} + +static bool weight_buft_supported(const whisper_vad_hparams & hparams, ggml_tensor * w, ggml_op op, ggml_backend_buffer_type_t buft, ggml_backend_dev_t dev) { + bool op_supported = true; + + if (ggml_backend_dev_type(dev) == GGML_BACKEND_DEVICE_TYPE_GPU || + (ggml_backend_dev_type(dev) == GGML_BACKEND_DEVICE_TYPE_CPU && buft == ggml_backend_cpu_buffer_type())) { + // GPU and default CPU backend support all operators + op_supported = true; + } else { + switch (op) { + // The current extra_buffer_type implementations only support GGML_OP_MUL_MAT + case GGML_OP_MUL_MAT: { + ggml_init_params params = { + /*.mem_size =*/ 2 * ggml_tensor_overhead(), + /*.mem_buffer =*/ nullptr, + /*.no_alloc =*/ true, + }; + + ggml_context_ptr ctx_ptr { ggml_init(params) }; + if (!ctx_ptr) { + throw std::runtime_error("failed to create ggml context"); + } + ggml_context * ctx = ctx_ptr.get(); + + ggml_tensor * op_tensor = nullptr; + + int64_t n_ctx = hparams.lstm_hidden_size; + ggml_tensor * b = ggml_new_tensor_4d(ctx, GGML_TYPE_F32, w->ne[0], n_ctx, w->ne[2], w->ne[3]); + op_tensor = ggml_mul_mat(ctx, w, b); + + // create a temporary dummy buffer for the weight so that supports_op can check the buffer type + GGML_ASSERT(w->buffer == nullptr); + w->buffer = ggml_backend_buft_alloc_buffer(buft, 0); + op_supported = ggml_backend_dev_supports_op(dev, op_tensor); + ggml_backend_buffer_free(w->buffer); + w->buffer = nullptr; + break; + } + default: { + op_supported = false; + break; + } + }; + } + return op_supported; +} + +static ggml_backend_buffer_type_t select_weight_buft(const whisper_vad_hparams & hparams, ggml_tensor * w, ggml_op op, buft_list_t buft_list) { + GGML_ASSERT(!buft_list.empty()); + for (const auto & p : buft_list) { + ggml_backend_dev_t dev = p.first; + ggml_backend_buffer_type_t buft = p.second; + if (weight_buft_supported(hparams, w, op, buft, dev)) { + return buft; + } + } + + return nullptr; +} + +static ggml_tensor * whisper_vad_build_stft_layer(ggml_context* ctx0, + const whisper_vad_model & model, ggml_tensor * cur) { + // Apply reflective padding to the input tensor + ggml_tensor * padded = ggml_pad_reflect_1d(ctx0, cur, 64, 64); + + // Perform the Short-Time Fourier Transform (STFT) convolution operation. + // We need the stft tensor to be in {256, 1, 258} + // 256 frequency bins (output), 1 channel (input), and 258 is kernel size. + struct ggml_tensor * stft_reshaped = ggml_reshape_3d(ctx0, model.stft_forward_basis, + model.stft_forward_basis->ne[2], model.stft_forward_basis->ne[1], model.stft_forward_basis->ne[0]); + struct ggml_tensor* stft = ggml_conv_1d(ctx0, stft_reshaped, padded, model.hparams.lstm_input_size, 0, 1); + + // Calculate cutoff for real/imaginary parts + int cutoff = model.stft_forward_basis->ne[2] / 2 + 1; + + // Extract real part (first half of the STFT output). + struct ggml_tensor * real_part = ggml_view_2d(ctx0, stft, 4, cutoff, stft->nb[1], 0); + // Extract imaginary part (second half of the STFT output). + struct ggml_tensor * img_part = ggml_view_2d(ctx0, stft, 4, cutoff, stft->nb[1], cutoff * stft->nb[1]); + + // Calculate magnitude: sqrt(real^2 + imag^2) + struct ggml_tensor * real_squared = ggml_mul(ctx0, real_part, real_part); + struct ggml_tensor * img_squared = ggml_mul(ctx0, img_part, img_part); + struct ggml_tensor * sum_squares = ggml_add(ctx0, real_squared, img_squared); + struct ggml_tensor * magnitude = ggml_sqrt(ctx0, sum_squares); + return magnitude; +} + +static ggml_tensor * whisper_vad_build_encoder_layer(ggml_context* ctx0, + const whisper_vad_model & model, ggml_tensor * cur) { + // First Conv1D: expands to 128 channels. + cur = ggml_conv_1d(ctx0, model.encoder_0_weight, cur, 1, 1, 1); + cur = ggml_add(ctx0, cur, ggml_reshape_3d(ctx0, model.encoder_0_bias, 1, 128, 1)); + cur = ggml_relu(ctx0, cur); + + // Second Conv1D: reduces to 64 channels. + cur = ggml_conv_1d(ctx0, model.encoder_1_weight, cur, 2, 1, 1); + cur = ggml_add(ctx0, cur, ggml_reshape_3d(ctx0, model.encoder_1_bias, 1, 64, 1)); + cur = ggml_relu(ctx0, cur); + + // Third Conv1D: maintains 64 channels + cur = ggml_conv_1d(ctx0, model.encoder_2_weight, cur, 2, 1, 1); + cur = ggml_add(ctx0, cur, ggml_reshape_3d(ctx0, model.encoder_2_bias, 1, 64, 1)); + cur = ggml_relu(ctx0, cur); + + // Fourth Conv1D: expands to 128 channels + cur = ggml_conv_1d(ctx0, model.encoder_3_weight, cur, 1, 1, 1); + cur = ggml_add(ctx0, cur, ggml_reshape_3d(ctx0, model.encoder_3_bias, 1, 128, 1)); + cur = ggml_relu(ctx0, cur); + + return cur; +} + +static ggml_tensor * whisper_vad_build_lstm_layer(ggml_context* ctx0, + const whisper_vad_context & vctx, ggml_tensor * cur, ggml_cgraph * gf) { + const whisper_vad_model & model = vctx.model; + const int hdim = model.hparams.lstm_hidden_size; + const int hdim_bytes = hdim * sizeof(float); + + struct ggml_tensor * x_t = ggml_cont(ctx0, ggml_transpose(ctx0, cur)); + + // Hidden state from previous time step. + struct ggml_tensor * h_in = ggml_new_tensor_1d(ctx0, GGML_TYPE_F32, hdim); + ggml_set_name(h_in, "h_in"); + ggml_set_input(h_in); + + // Cell state from all previous time steps. + struct ggml_tensor * c_in = ggml_new_tensor_1d(ctx0, GGML_TYPE_F32, hdim); + ggml_set_name(c_in, "c_in"); + ggml_set_input(c_in); + + // Create operations using the input-to-hidden weights. + struct ggml_tensor * inp_gate = ggml_mul_mat(ctx0, model.lstm_ih_weight, x_t); + inp_gate = ggml_add(ctx0, inp_gate, model.lstm_ih_bias); + + // Create operations using the hidden-to-hidden weights. + struct ggml_tensor * hid_gate = ggml_mul_mat(ctx0, model.lstm_hh_weight, h_in); + hid_gate = ggml_add(ctx0, hid_gate, model.lstm_hh_bias); + + // Create add operation to get preactivations for all gates. + struct ggml_tensor * out_gate = ggml_add(ctx0, inp_gate, hid_gate); + + // Create sigmoid for input gate (using the first 128 bytes from the preactivations). + struct ggml_tensor * i_t = ggml_sigmoid(ctx0, ggml_view_1d(ctx0, out_gate, hdim, 0 * hdim_bytes)); + + // Create sigmoid for the forget gate (using the second 128 bytes from the preactivations). + struct ggml_tensor * f_t = ggml_sigmoid(ctx0, ggml_view_1d(ctx0, out_gate, hdim, 1 * hdim_bytes)); + + // Create sigmoid for the cell gate (using the third 128 bytes from the preactivations). + struct ggml_tensor * g_t = ggml_tanh(ctx0, ggml_view_1d(ctx0, out_gate, hdim, 2 * hdim_bytes)); + + // Create sigmoid for the output gate (using the fourth 128 bytes from the preactivations). + struct ggml_tensor * o_t = ggml_sigmoid(ctx0, ggml_view_1d(ctx0, out_gate, hdim, 3 * hdim_bytes)); + + // Update cell state + struct ggml_tensor * c_out = ggml_add(ctx0, + ggml_mul(ctx0, f_t, c_in), + ggml_mul(ctx0, i_t, g_t)); + ggml_set_output(c_out); + ggml_set_name(c_out, "c_out"); + ggml_build_forward_expand(gf, c_out); + + // Update hidden state + struct ggml_tensor * out = ggml_mul(ctx0, o_t, ggml_tanh(ctx0, c_out)); + ggml_set_output(out); + ggml_set_name(out, "h_out"); + return out; +} + +static struct ggml_cgraph * whisper_vad_build_graph(whisper_vad_context & vctx, + whisper_vad_state & vstate) { + const auto & model = vctx.model; + + struct ggml_init_params params = { + /*.mem_size =*/ vstate.sched.meta.size(), + /*.mem_buffer =*/ vstate.sched.meta.data(), + /*.no_alloc =*/ true, + }; + + struct ggml_context * ctx0 = ggml_init(params); + + ggml_cgraph * gf = ggml_new_graph(ctx0); + + struct ggml_tensor * frame = ggml_new_tensor_2d(ctx0, GGML_TYPE_F32, vctx.n_window, 1); + ggml_set_name(frame, "frame"); + ggml_set_input(frame); + + struct ggml_tensor * cur = nullptr; + { + cur = whisper_vad_build_stft_layer(ctx0, model, frame); + + cur = whisper_vad_build_encoder_layer(ctx0, model, cur); + + // Extract the first element of the first dimension + // (equivalent to pytorch's [:, :, 0]) + cur = ggml_view_2d(ctx0, cur, 1, 128, cur->nb[1], 0); + + cur = whisper_vad_build_lstm_layer(ctx0, vctx, cur, gf); + cur = ggml_relu(ctx0, cur); + cur = ggml_conv_1d(ctx0, model.final_conv_weight, cur, 1, 0, 1); + cur = ggml_add(ctx0, cur, model.final_conv_bias); + cur = ggml_sigmoid(ctx0, cur); + ggml_set_name(cur, "prob"); + ggml_set_output(cur); + } + + ggml_build_forward_expand(gf, cur); + + ggml_free(ctx0); + + return gf; +} + +struct whisper_vad_state * whisper_vad_init_state(whisper_vad_context * ctx) { + whisper_vad_state * state = new whisper_vad_state; + + state->backends = whisper_backend_init(ctx->params); + if (state->backends.empty()) { + WHISPER_LOG_ERROR("%s: whisper_backend_init() failed\n", __func__); + whisper_vad_free_state(state); + return nullptr; + } + + { + bool ok = whisper_sched_graph_init(state->sched, state->backends, + [&]() { + return whisper_vad_build_graph(*ctx, *state); + }); + + if (!ok) { + WHISPER_LOG_ERROR("%s: failed to init VAD allocator\n", __func__); + whisper_vad_free_state(state); + return nullptr; + } + + WHISPER_LOG_INFO("%s: compute buffer (VAD) = %7.2f MB\n", __func__, whisper_sched_size(state->sched) / 1e6); + } + + return state; +} + +struct whisper_vad_context * whisper_vad_init_from_file_with_params( + const char * path_model, struct whisper_vad_context_params params) { + whisper_vad_context * ctx = whisper_vad_init_from_file_with_params_no_state(path_model, params); + if (!ctx) { + return nullptr; + } + + ctx->state = whisper_vad_init_state(ctx); + if (!ctx->state) { + whisper_vad_free(ctx); + return nullptr; + } + + return ctx; +} + +whisper_vad_context * whisper_vad_init_from_file_with_params_no_state( + const char * path_model, + const whisper_vad_context_params params) { + WHISPER_LOG_INFO("%s: loading VAD model from '%s'\n", __func__, path_model); +#ifdef _MSC_VER + std::wstring_convert> converter; + std::wstring path_model_wide = converter.from_bytes(path_model); + auto fin = std::ifstream(path_model_wide, std::ios::binary); +#else + auto fin = std::ifstream(path_model, std::ios::binary); +#endif + if (!fin) { + WHISPER_LOG_ERROR("%s: failed to open VAD model '%s'\n", __func__, path_model); + return nullptr; + } + + whisper_model_loader loader = {}; + loader.context = &fin; + + loader.read = [](void * ctx, void * output, size_t read_size) { + std::ifstream * fin = (std::ifstream*)ctx; + fin->read((char *)output, read_size); + return read_size; + }; + + loader.eof = [](void * ctx) { + std::ifstream * fin = (std::ifstream*)ctx; + return fin->eof(); + }; + + loader.close = [](void * ctx) { + std::ifstream * fin = (std::ifstream*)ctx; + fin->close(); + }; + + auto ctx = whisper_vad_init_with_params_no_state(&loader, params); + if (ctx) { + ctx->path_model = path_model; + } + + return ctx; +} + +struct whisper_vad_context * whisper_vad_init_with_params_no_state(struct whisper_model_loader * loader, struct whisper_vad_context_params params) { + // Read the VAD model + { + uint32_t magic; + read_safe(loader, magic); + if (magic != GGML_FILE_MAGIC) { + WHISPER_LOG_ERROR("%s: invalid model data (bad magic)\n", __func__); + return nullptr; + } + } + + whisper_vad_context * vctx = new whisper_vad_context; + vctx->n_threads = params.n_threads; + + auto & model = vctx->model; + auto & hparams = model.hparams; + + // load model context params. + { + int32_t str_len; + read_safe(loader, str_len); + std::vector buffer(str_len + 1, 0); + loader->read(loader->context, buffer.data(), str_len); + std::string model_type(buffer.data(), str_len); + model.type = model_type; + WHISPER_LOG_INFO("%s: model type: %s\n", __func__, model.type.c_str()); + + int32_t major, minor, patch; + read_safe(loader, major); + read_safe(loader, minor); + read_safe(loader, patch); + std::string version_str = std::to_string(major) + "." + + std::to_string(minor) + "." + + std::to_string(patch); + model.version = version_str; + WHISPER_LOG_INFO("%s: model version: %s\n", __func__, model.version.c_str()); + + read_safe(loader, vctx->n_window); + read_safe(loader, vctx->n_context); + } + + // load model hyper params (hparams). + { + read_safe(loader, hparams.n_encoder_layers); + + hparams.encoder_in_channels = new int32_t[hparams.n_encoder_layers]; + hparams.encoder_out_channels = new int32_t[hparams.n_encoder_layers]; + hparams.kernel_sizes = new int32_t[hparams.n_encoder_layers]; + + for (int32_t i = 0; i < hparams.n_encoder_layers; i++) { + read_safe(loader, hparams.encoder_in_channels[i]); + read_safe(loader, hparams.encoder_out_channels[i]); + read_safe(loader, hparams.kernel_sizes[i]); + } + + read_safe(loader, hparams.lstm_input_size); + read_safe(loader, hparams.lstm_hidden_size); + read_safe(loader, hparams.final_conv_in); + read_safe(loader, hparams.final_conv_out); + + WHISPER_LOG_INFO("%s: n_encoder_layers = %d\n", __func__, hparams.n_encoder_layers); + for (int32_t i = 0; i < hparams.n_encoder_layers; i++) { + WHISPER_LOG_INFO("%s: encoder_in_channels[%d] = %d\n", __func__, i, hparams.encoder_in_channels[i]); + } + for (int32_t i = 0; i < hparams.n_encoder_layers; i++) { + WHISPER_LOG_INFO("%s: encoder_out_channels[%d] = %d\n", __func__, i, hparams.encoder_out_channels[i]); + } + WHISPER_LOG_INFO("%s: lstm_input_size = %d\n", __func__, hparams.lstm_input_size); + WHISPER_LOG_INFO("%s: lstm_hidden_size = %d\n", __func__, hparams.lstm_hidden_size); + WHISPER_LOG_INFO("%s: final_conv_in = %d\n", __func__, hparams.final_conv_in); + WHISPER_LOG_INFO("%s: final_conv_out = %d\n", __func__, hparams.final_conv_out); + } + + // 1 STFT tensor, 4*2 encoder tensors, 4 LSTM tensors, 2 final output tensors + const size_t n_tensors = hparams.n_encoder_layers * 2 + 4 + 2 + 1; + + std::map ctx_map; + auto get_ctx = [&](ggml_backend_buffer_type_t buft) -> ggml_context * { + auto it = ctx_map.find(buft); + if (it == ctx_map.end()) { + ggml_init_params params = { + /*.mem_size =*/ n_tensors * ggml_tensor_overhead(), + /*.mem_buffer =*/ nullptr, + /*.no_alloc =*/ true, + }; + + ggml_context * ctx = ggml_init(params); + if (!ctx) { + throw std::runtime_error("failed to create ggml context"); + } + + ctx_map[buft] = ctx; + model.ctxs.emplace_back(ctx); + + return ctx; + } + + return it->second; + }; + + whisper_context_params wparams = whisper_context_default_params(); + wparams.use_gpu = params.use_gpu; + wparams.gpu_device = params.gpu_device; + buft_list_t buft_list = make_buft_list(wparams); + + auto create_tensor = [&](vad_tensor type, ggml_tensor * meta) -> ggml_tensor * { + ggml_op op = VAD_TENSOR_OPS.at(type); + ggml_backend_buffer_type_t buft = select_weight_buft(hparams, meta, op, buft_list); + if (!buft) { + throw std::runtime_error(format("failed to find a compatible buffer type for tensor %s", VAD_TENSOR_NAMES.at(type))); + } + + ggml_context * ctx = get_ctx(buft); + ggml_tensor * tensor = ggml_dup_tensor(ctx, meta); + model.tensors[VAD_TENSOR_NAMES.at(type)] = tensor; + + return tensor; + }; + + // create tensors + { + ggml_init_params params = { + /*.mem_size =*/ n_tensors * ggml_tensor_overhead(), + /*.mem_buffer =*/ nullptr, + /*.no_alloc =*/ true, + }; + + ggml_context * ctx = ggml_init(params); + const auto & hparams = model.hparams; + + // SFTF precomputed basis matrix + model.stft_forward_basis = create_tensor(VAD_TENSOR_STFT_BASIS, + ggml_new_tensor_3d(ctx, GGML_TYPE_F16, 258, 1, 256)); + + model.encoder_0_weight = create_tensor(VAD_TENSOR_ENC_0_WEIGHT, + ggml_new_tensor_3d( + ctx, + GGML_TYPE_F16, + hparams.kernel_sizes[0], + hparams.encoder_in_channels[0], + hparams.encoder_out_channels[0] + )); + model.encoder_0_bias = create_tensor(VAD_TENSOR_ENC_0_BIAS, + ggml_new_tensor_1d(ctx, GGML_TYPE_F32, hparams.encoder_out_channels[0])); + + model.encoder_1_weight = create_tensor(VAD_TENSOR_ENC_1_WEIGHT, + ggml_new_tensor_3d( + ctx, + GGML_TYPE_F16, + hparams.kernel_sizes[1], + hparams.encoder_in_channels[1], + hparams.encoder_out_channels[1] + )); + model.encoder_1_bias = create_tensor(VAD_TENSOR_ENC_1_BIAS, + ggml_new_tensor_1d(ctx, GGML_TYPE_F32, hparams.encoder_out_channels[1])); + + model.encoder_2_weight = create_tensor(VAD_TENSOR_ENC_2_WEIGHT, + ggml_new_tensor_3d( + ctx, + GGML_TYPE_F16, + hparams.kernel_sizes[2], + hparams.encoder_in_channels[2], + hparams.encoder_out_channels[2] + )); + model.encoder_2_bias = create_tensor(VAD_TENSOR_ENC_2_BIAS, + ggml_new_tensor_1d(ctx, GGML_TYPE_F32, hparams.encoder_out_channels[2])); + + model.encoder_3_weight = create_tensor(VAD_TENSOR_ENC_3_WEIGHT, + ggml_new_tensor_3d( + ctx, + GGML_TYPE_F16, + hparams.kernel_sizes[3], + hparams.encoder_in_channels[3], + hparams.encoder_out_channels[3] + )); + model.encoder_3_bias = create_tensor(VAD_TENSOR_ENC_3_BIAS, + ggml_new_tensor_1d(ctx, GGML_TYPE_F32, hparams.encoder_out_channels[3])); + + // Hidden State dimension (input gate, forget gate, cell gate, output gate) + const int hstate_dim = hparams.lstm_hidden_size * 4; + + // LSTM weights - input to hidden + model.lstm_ih_weight = create_tensor( + VAD_TENSOR_LSTM_WEIGHT_IH, + ggml_new_tensor_2d(ctx, GGML_TYPE_F32, hparams.lstm_hidden_size, hstate_dim) + ); + model.lstm_ih_bias = create_tensor( + VAD_TENSOR_LSTM_BIAS_IH, + ggml_new_tensor_1d(ctx, GGML_TYPE_F32, hstate_dim) + ); + + // LSTM weights - hidden to hidden + model.lstm_hh_weight = create_tensor( + VAD_TENSOR_LSTM_WEIGHT_HH, + ggml_new_tensor_2d(ctx, GGML_TYPE_F32, hparams.lstm_hidden_size, hstate_dim) + ); + model.lstm_hh_bias = create_tensor( + VAD_TENSOR_LSTM_BIAS_HH, + ggml_new_tensor_1d(ctx, GGML_TYPE_F32, hstate_dim) + ); + + // Final conv layer weight + model.final_conv_weight = create_tensor( + VAD_TENSOR_FINAL_CONV_WEIGHT, + ggml_new_tensor_2d(ctx, GGML_TYPE_F16, hparams.final_conv_in, 1) + ); + model.final_conv_bias = create_tensor( + VAD_TENSOR_FINAL_CONV_BIAS, + ggml_new_tensor_1d(ctx, GGML_TYPE_F32, 1) + ); + + ggml_free(ctx); + } + + // allocate tensors in the backend buffers + for (auto & p : ctx_map) { + ggml_backend_buffer_type_t buft = p.first; + ggml_context * ctx = p.second; + ggml_backend_buffer_t buf = ggml_backend_alloc_ctx_tensors_from_buft(ctx, buft); + if (buf) { + model.buffers.emplace_back(buf); + + size_t size_main = ggml_backend_buffer_get_size(buf); + WHISPER_LOG_INFO("%s: %12s total size = %8.2f MB\n", __func__, ggml_backend_buffer_name(buf), size_main / 1e6); + } + } + + // load weights + { + size_t total_size = 0; + model.n_loaded = 0; + std::vector read_buf; + + while (true) { + int32_t n_dims; + int32_t length; + int32_t ttype; + + read_safe(loader, n_dims); + read_safe(loader, length); + read_safe(loader, ttype); + + if (loader->eof(loader->context)) { + break; + } + + int32_t nelements = 1; + int32_t ne[4] = { 1, 1, 1, 1 }; + for (int i = 0; i < n_dims; ++i) { + read_safe(loader, ne[i]); + nelements *= ne[i]; + } + + std::string name; + std::vector tmp(length); + loader->read(loader->context, &tmp[0], tmp.size()); + name.assign(&tmp[0], tmp.size()); + + if (model.tensors.find(name) == model.tensors.end()) { + WHISPER_LOG_ERROR("%s: unknown tensor '%s' in model file\n", __func__, name.data()); + return nullptr; + } + + auto tensor = model.tensors[name.data()]; + + if (ggml_nelements(tensor) != nelements) { + WHISPER_LOG_ERROR("%s: tensor '%s' has wrong size in model file\n", __func__, name.data()); + WHISPER_LOG_ERROR("%s: shape: [%d, %d, %d], expected: [%d, %d, %d]\n", + __func__, ne[0], ne[1], ne[2], (int) tensor->ne[0], (int) tensor->ne[1], (int) tensor->ne[2]); + return nullptr; + } + + if (tensor->ne[0] != ne[0] || tensor->ne[1] != ne[1] || tensor->ne[2] != ne[2]) { + WHISPER_LOG_ERROR("%s: tensor '%s' has wrong shape in model file: got [%d, %d, %d], expected [%d, %d, %d]\n", + __func__, name.data(), (int) tensor->ne[0], (int) tensor->ne[1], (int) tensor->ne[2], ne[0], ne[1], ne[2]); + return nullptr; + } + + const size_t bpe = ggml_type_size(ggml_type(ttype)); + + if ((nelements*bpe)/ggml_blck_size(tensor->type) != ggml_nbytes(tensor)) { + WHISPER_LOG_ERROR("%s: tensor '%s' has wrong size in model file: got %zu, expected %zu\n", + __func__, name.data(), ggml_nbytes(tensor), nelements*bpe); + return nullptr; + } + + if (ggml_backend_buffer_is_host(tensor->buffer)) { + // for the CPU and Metal backend, we can read directly into the tensor + loader->read(loader->context, tensor->data, ggml_nbytes(tensor)); + BYTESWAP_TENSOR(tensor); + } else { + // read into a temporary buffer first, then copy to device memory + read_buf.resize(ggml_nbytes(tensor)); + + loader->read(loader->context, read_buf.data(), read_buf.size()); + + ggml_backend_tensor_set(tensor, read_buf.data(), 0, ggml_nbytes(tensor)); + } + + total_size += ggml_nbytes(tensor); + model.n_loaded++; + } + + WHISPER_LOG_INFO("%s: model size = %7.2f MB\n", __func__, total_size/1e6); + + if (model.n_loaded == 0) { + WHISPER_LOG_WARN("%s: WARN no tensors loaded from model file - assuming empty model for testing\n", __func__); + } else if (model.n_loaded != (int) model.tensors.size()) { + WHISPER_LOG_ERROR("%s: ERROR not all tensors loaded from model file - expected %zu, got %d\n", __func__, model.tensors.size(), model.n_loaded); + return nullptr; + } + + } + + return vctx; +} + +struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * vctx, + const float * pcmf32, + int n_samples) { + const int hidden_dim = vctx->model.hparams.lstm_hidden_size; + int n_chunks = n_samples / vctx->n_window; + if (n_samples % vctx->n_window != 0) { + n_chunks += 1; // Add one more chunk for remaining samples. + } + auto & sched = vctx->state->sched.sched; + + WHISPER_LOG_INFO("%s: detecting speech in %d samples\n", __func__, n_samples); + WHISPER_LOG_INFO("%s: n_chunks: %d\n", __func__, n_chunks); + + ggml_cgraph * gf = whisper_vad_build_graph(*vctx, *vctx->state); + + if (!ggml_backend_sched_alloc_graph(sched, gf)) { + WHISPER_LOG_ERROR("%s: failed to allocate the compute buffer\n", __func__); + return {}; + } + + struct ggml_tensor * frame = ggml_graph_get_tensor(gf, "frame"); + struct ggml_tensor * c_out = ggml_graph_get_tensor(gf, "c_out"); + struct ggml_tensor * h_out = ggml_graph_get_tensor(gf, "h_out"); + struct ggml_tensor * c_in = ggml_graph_get_tensor(gf, "c_in"); + struct ggml_tensor * h_in = ggml_graph_get_tensor(gf, "h_in"); + struct ggml_tensor * prob = ggml_graph_get_tensor(gf, "prob"); + + ggml_set_zero(c_out); + ggml_set_zero(h_out); + ggml_set_zero(prob); + ggml_set_zero(c_in); + ggml_set_zero(h_in); + + std::vector h_state(hidden_dim, 0.0f); + std::vector c_state(hidden_dim, 0.0f); + + float * probs= new float[n_chunks]; + WHISPER_LOG_INFO("%s: props size: %u\n", __func__, n_chunks); + + std::vector window(vctx->n_window, 0.0f); + for (int i = 0; i < n_chunks; i++) { + int start_idx = i * vctx->n_window; + int end_idx = std::min(start_idx + vctx->n_window, n_samples); + int chunk_len = end_idx - start_idx; + + if (chunk_len < vctx->n_window) { + WHISPER_LOG_INFO("%s: chunk_len: %d < n_window: %d\n", __func__, chunk_len, vctx->n_window); + std::vector partial_chunk(vctx->n_window, 0.0f); + std::copy(pcmf32 + start_idx, pcmf32 + end_idx, partial_chunk.begin()); + + // Copy the zero-padded chunk to the window. + int max_samples_to_copy = vctx->n_window; + int actual_samples_to_copy = std::min(max_samples_to_copy, (int)partial_chunk.size()); + std::copy(partial_chunk.begin(), partial_chunk.begin() + actual_samples_to_copy, window.begin()); + if (actual_samples_to_copy < max_samples_to_copy) { + std::fill(window.begin() + actual_samples_to_copy, window.end(), 0.0f); + } + } else { + // Copy current frame samples to the window. + int samples_to_copy = std::min(end_idx - start_idx, vctx->n_window); + std::copy(pcmf32 + start_idx, pcmf32 + start_idx + samples_to_copy, + window.begin()); + } + + // Set the frame tensor data with the samples. + ggml_backend_tensor_set(frame, window.data(), 0, ggml_nelements(frame) * sizeof(float)); + + ggml_backend_tensor_set(h_in, h_state.data(), 0, hidden_dim * sizeof(float)); + ggml_backend_tensor_set(c_in, c_state.data(), 0, hidden_dim * sizeof(float)); + + if (!ggml_graph_compute_helper(sched, gf, vctx->n_threads)) { + WHISPER_LOG_ERROR("%s: failed to compute VAD graph\n", __func__); + break; + } + + // Update the LSTM states + ggml_backend_tensor_get(h_out, h_state.data(), 0, hidden_dim * sizeof(float)); + ggml_backend_tensor_get(c_out, c_state.data(), 0, hidden_dim * sizeof(float)); + + // Get the probability for this chunk. + ggml_backend_tensor_get(prob, &probs[i], 0, sizeof(float)); + + } + WHISPER_LOG_INFO("%s: finished processing %d samples\n", __func__, n_samples); + + struct whisper_vad_speech speech = { + /* n_probs = */ n_chunks, + /* probs = */ probs, + }; + return speech; +} + + +struct whisper_vad_timestamps whisper_vad_timestamps_from_probs(whisper_vad_context * vctx, + whisper_vad_params params, + struct whisper_vad_speech * speech) { + GGML_UNUSED(vctx); + WHISPER_LOG_INFO("%s: detecting speech timestamps using %d probabilities\n", __func__, speech->n_probs); + int n_probs = speech->n_probs; + float * probs = speech->probs; + float threshold = params.threshold; + int min_speech_duration_ms = params.min_speech_duration_ms; + int min_silence_duration_ms = params.min_silence_duration_ms; + float max_speech_duration_s = params.max_speech_duration_s; + int speech_pad_ms = params.speech_pad_ms; + int window_size_samples = params.window_size_samples; + int sample_rate = WHISPER_SAMPLE_RATE; + int min_silence_samples = sample_rate * min_silence_duration_ms / 1000; + int audio_length_samples = n_probs * window_size_samples; + + // Min number of samples to be considered valid speech. + int min_speech_samples = sample_rate * min_speech_duration_ms / 1000; + int speech_pad_samples = sample_rate * speech_pad_ms / 1000; + + // Max number of samples that a speech segment can contain before it is + // split into multiple segments. + int max_speech_samples; + if (max_speech_duration_s > 100000.0f) { + max_speech_samples = INT_MAX / 2; + } else { + int64_t temp = (int64_t)sample_rate * (int64_t)(max_speech_duration_s) - window_size_samples - 2 * speech_pad_samples; + max_speech_samples = (temp > INT_MAX) ? INT_MAX / 2 : (int)temp; + if (max_speech_samples < 0) { + max_speech_samples = INT_MAX / 2; + } + } + // Detect silence period that exceeds this value, then that location (sample) + // is marked as a potential place where the segment could be split if + // max_speech_samples is reached. The value 98 was taken from the original + // silaro-vad python implementation: + //https://github.com/snakers4/silero-vad/blob/0dd45f0bcd7271463c234f3bae5ad25181f9df8b/src/silero_vad/utils_vad.py#L291 + int min_silence_samples_at_max_speech = sample_rate * 98 / 1000; + + // Calculate lower threshold for detecting end of speech segments. + float neg_threshold = threshold - 0.15f; + if (neg_threshold < 0.01f) { + neg_threshold = 0.01f; + } + + typedef struct { + int start; + int end; + } speech_segment_t; + + // Allocate initial memory for speech segments. + int speech_capacity = 16; + speech_segment_t * speeches = (speech_segment_t*)malloc(speech_capacity * sizeof(speech_segment_t)); + if (!speeches) { + WHISPER_LOG_ERROR("%s: failed to allocate memory for temporary segments\n", __func__); + return { 0, nullptr }; + } + // Initialize all segments + for (int i = 0; i < speech_capacity; i++) { + speeches[i].start = 0; + speeches[i].end = 0; + } + + bool is_speech_segment = false; + int speech_count = 0; + int temp_end = 0; + int prev_end = 0; + int next_start = 0; + int curr_speech_start = 0; + bool has_curr_speech = false; + + auto resize_speeches = [&]() -> bool { + if (speech_count >= speech_capacity) { + speech_capacity *= 2; + speech_segment_t* new_speeches = (speech_segment_t*)realloc(speeches, + speech_capacity * sizeof(speech_segment_t)); + if (!new_speeches) { + WHISPER_LOG_ERROR("%s: failed to reallocate memory for speech segments\n", __func__); + free(speeches); + return false; + } + speeches = new_speeches; + + // Initialize new memory + for (int j = speech_count; j < speech_capacity; j++) { + speeches[j].start = 0; + speeches[j].end = 0; + } + } + return true; + }; + + for (int i = 0; i < n_probs; i++) { + float curr_prob = probs[i]; + int curr_sample = window_size_samples * i; + + // Reset temp_end when we get back to speech + if ((curr_prob >= threshold) && temp_end) { + temp_end = 0; + if (next_start < prev_end) { + next_start = curr_sample; + } + } + + // Start a new speech segment when probability exceeds threshold and not already in speech + if ((curr_prob >= threshold) && !is_speech_segment) { + is_speech_segment = true; + curr_speech_start = curr_sample; + has_curr_speech = true; + continue; + } + + // Handle maximum speech duration + if (is_speech_segment && (curr_sample - curr_speech_start) > max_speech_samples) { + if (prev_end) { + // Check if we need to increase capacity + if (!resize_speeches()) { + return { 0, nullptr }; + } + + // Add segment ending at previously detected silence + speeches[speech_count].start = curr_speech_start; + speeches[speech_count].end = prev_end; + speech_count++; + has_curr_speech = true; + + if (next_start < prev_end) { // Previously reached silence and is still not speech + is_speech_segment = false; + has_curr_speech = false; + } else { + curr_speech_start = next_start; + } + prev_end = next_start = temp_end = 0; + } else { + // No silence detected, force end the segment + if (!resize_speeches()) { + return { 0, nullptr }; + } + + speeches[speech_count].start = curr_speech_start; + speeches[speech_count].end = curr_sample; + speech_count++; + + prev_end = next_start = temp_end = 0; + is_speech_segment = false; + has_curr_speech = false; + continue; + } + } + + // Handle silence after speech + if ((curr_prob < neg_threshold) && is_speech_segment) { + if (!temp_end) { + temp_end = curr_sample; + } + + // Track potential segment ends for max_speech handling + if ((curr_sample - temp_end) > min_silence_samples_at_max_speech) { + prev_end = temp_end; + } + + // Check if silence is long enough to end the segment + if ((curr_sample - temp_end) < min_silence_samples) { + continue; + } else { + // End the segment if it's long enough + if ((temp_end - curr_speech_start) > min_speech_samples) { + // Check if we need to increase capacity + if (!resize_speeches()) { + return { 0, nullptr }; + } + + speeches[speech_count].start = curr_speech_start; + speeches[speech_count].end = temp_end; + speech_count++; + } + + prev_end = next_start = temp_end = 0; + is_speech_segment = false; + has_curr_speech = false; + continue; + } + } + } + + // Handle the case if we're still in a speech segment at the end + if (has_curr_speech && (audio_length_samples - curr_speech_start) > min_speech_samples) { + // Check if we need to increase capacity + if (!resize_speeches()) { + return { 0, nullptr }; + } + + speeches[speech_count].start = curr_speech_start; + speeches[speech_count].end = audio_length_samples; + speech_count++; + } + + // Merge adjacent segments with small gaps in between (post-processing) + if (speech_count > 1) { + int merged_count = 0; + for (int i = 0; i < speech_count - 1; i++) { + // Define maximum gap allowed for merging (e.g., 200ms converted to samples) + int max_merge_gap_samples = sample_rate * 200 / 1000; + + // If the gap between this segment and the next is small enough + if (speeches[i+1].start - speeches[i].end < max_merge_gap_samples) { + // Merge by extending current segment to the end of next segment + speeches[i].end = speeches[i+1].end; + + // Shift all subsequent segments back by one + for (int j = i+1; j < speech_count - 1; j++) { + speeches[j] = speeches[j+1]; + } + + // Reduce count and check this position again + speech_count--; + i--; + merged_count++; + } + } + WHISPER_LOG_INFO("%s: Merged %d adjacent segments, now have %d segments\n", + __func__, merged_count, speech_count); + } + + // Double-check for minimum speech duration + for (int i = 0; i < speech_count; i++) { + if (speeches[i].end - speeches[i].start < min_speech_samples) { + WHISPER_LOG_INFO("%s: Removing segment %d (too short: %d samples)\n", + __func__, i, speeches[i].end - speeches[i].start); + + // Remove this segment by shifting all subsequent segments + for (int j = i; j < speech_count - 1; j++) { + speeches[j] = speeches[j+1]; + } + + // Reduce count and recheck current position + speech_count--; + i--; + } + } + + WHISPER_LOG_INFO("%s: Final speech segments after filtering: %d\n", __func__, speech_count); + + // Allocate final segments + struct whisper_vad_segment * segments = NULL; + if (speech_count > 0) { + segments = (struct whisper_vad_segment*) malloc(speech_count * sizeof(struct whisper_vad_segment)); + if (!segments) { + WHISPER_LOG_ERROR("%s: failed to allocate memory for final segments\n", __func__); + free(speeches); + return { 0, nullptr }; + } + } + + // Apply padding to segments and copy to final segments + for (int i = 0; i < speech_count; i++) { + // Apply padding to the start of the first segment + if (i == 0) { + speeches[i].start = (speeches[i].start > speech_pad_samples) ? + (speeches[i].start - speech_pad_samples) : 0; + } + + // Handle spacing between segments + if (i < speech_count - 1) { + int silence_duration = speeches[i+1].start - speeches[i].end; + + if (silence_duration < 2 * speech_pad_samples) { + // If segments are close, split the difference + speeches[i].end += silence_duration / 2; + speeches[i+1].start = (speeches[i+1].start > silence_duration / 2) ? + (speeches[i+1].start - silence_duration / 2) : 0; + } else { + // Otherwise, apply full padding to both + speeches[i].end = (speeches[i].end + speech_pad_samples < audio_length_samples) ? + (speeches[i].end + speech_pad_samples) : audio_length_samples; + speeches[i+1].start = (speeches[i+1].start > speech_pad_samples) ? + (speeches[i+1].start - speech_pad_samples) : 0; + } + } else { + // Apply padding to the end of the last segment + speeches[i].end = (speeches[i].end + speech_pad_samples < audio_length_samples) ? + (speeches[i].end + speech_pad_samples) : audio_length_samples; + } + + // Convert from samples to seconds and copy to final segments + segments[i].start = (float)speeches[i].start / sample_rate; + segments[i].end = (float)speeches[i].end / sample_rate; + + WHISPER_LOG_INFO("%s: VAD segment %d: start = %.2f, end = %.2f (duration: %.2f)\n", + __func__, i, segments[i].start, segments[i].end, segments[i].end - segments[i].start); + } + + // Free temporary segments + free(speeches); + + struct whisper_vad_timestamps timestamps = { + /* n_segments = */ speech_count, + /* segments = */ segments, + }; + + return timestamps; +} + +struct whisper_vad_timestamps whisper_vad_detect_speech_timestamps(whisper_vad_context * vctx, + whisper_vad_params params, + const float * pcmf32, + int n_samples) { + WHISPER_LOG_INFO("%s: detecting speech timestamps in %d samples\n", __func__, n_samples); + auto probs = whisper_vad_detect_speech(vctx, pcmf32, n_samples); + return whisper_vad_timestamps_from_probs(vctx, params, &probs); +} + +void whisper_vad_free(whisper_vad_context * ctx) { + if (ctx) { + for (ggml_context * context : ctx->model.ctxs) { + ggml_free(context); + } + + for (ggml_backend_buffer_t buf : ctx->model.buffers) { + ggml_backend_buffer_free(buf); + } + + whisper_vad_free_state(ctx->state); + + delete ctx; + } +} + +void whisper_vad_free_state(whisper_vad_state * state) { + if (state) { + ggml_backend_sched_free(state->sched.sched); + + for (auto & backend : state->backends) { + ggml_backend_free(backend); + } + + delete state; + } +} + +void whisper_vad_free_params(whisper_vad_params * params) { + if (params) { + delete params; + } +} + +void whisper_vad_free_speech(whisper_vad_speech * speech) { + delete[] speech->probs; + speech->probs = nullptr; + speech->n_probs = 0; +} + +void whisper_vad_free_timestamps(whisper_vad_timestamps * timestamps) { + delete timestamps->segments; + timestamps->segments = nullptr; + timestamps->n_segments = 0; +} + ////////////////////////////////// // Grammar - ported from llama.cpp ////////////////////////////////// @@ -4779,6 +5966,7 @@ struct whisper_full_params * whisper_full_default_params_by_ref(enum whisper_sam } struct whisper_full_params whisper_full_default_params(enum whisper_sampling_strategy strategy) { + auto vparams = whisper_vad_default_params(); struct whisper_full_params result = { /*.strategy =*/ strategy, @@ -4858,6 +6046,16 @@ struct whisper_full_params whisper_full_default_params(enum whisper_sampling_str /*.n_grammar_rules =*/ 0, /*.i_start_rule =*/ 0, /*.grammar_penalty =*/ 100.0f, + + /*.vad =*/ false, + /*.vad_model_path =*/ nullptr, + /* vad_threshold =*/ vparams.threshold, + /* vad_min_speech_duration_ms =*/ vparams.min_speech_duration_ms, + /* vad_min_silence_duration_ms =*/ vparams.min_silence_duration_ms, + /* vad_max_speech_duration_s =*/ vparams.max_speech_duration_s, + /* vad_speech_pad_ms =*/ vparams.speech_pad_ms, + /* vad_window_size_samples =*/ vparams.window_size_samples, + /* vad_samples_overlap =*/ vparams.samples_overlap, }; switch (strategy) { @@ -5485,11 +6683,103 @@ int whisper_full_with_state( result_all.clear(); - if (n_samples > 0) { - // compute log mel spectrogram - if (whisper_pcm_to_mel_with_state(ctx, state, samples, n_samples, params.n_threads) != 0) { - WHISPER_LOG_ERROR("%s: failed to compute log mel spectrogram\n", __func__); - return -2; + float * filtered_samples = nullptr; + int filtered_n_samples = n_samples; + if (params.vad) { + WHISPER_LOG_INFO("%s: VAD is enabled, processing speach segments only\n", __func__); + struct whisper_vad_context_params vad_ctx_params = whisper_vad_default_context_params(); + struct whisper_vad_context * vctx = whisper_vad_init_from_file_with_params( + params.vad_model_path, + vad_ctx_params); + if (vctx == nullptr) { + WHISPER_LOG_ERROR("%s: failed to initialize VAD context\n", __func__); + return -1; + } + struct whisper_vad_params vad_params = whisper_vad_params_from(params); + struct whisper_vad_timestamps timestamps = whisper_vad_detect_speech_timestamps(vctx, vad_params, samples, n_samples); + + if (timestamps.n_segments > 0) { + WHISPER_LOG_INFO("%s: detected %d speech segments\n", __func__, timestamps.n_segments); + float overlap_seconds = params.vad_samples_overlap; + int overlap_samples = overlap_seconds * WHISPER_SAMPLE_RATE; + + filtered_n_samples = 0; + for (int i = 0; i < timestamps.n_segments; i++) { + int segment_start_samples = timestamps.segments[i].start * WHISPER_SAMPLE_RATE; + int segment_end_samples = timestamps.segments[i].end * WHISPER_SAMPLE_RATE; + + if (i < timestamps.n_segments - 1) { + segment_end_samples += overlap_samples; + } + segment_end_samples = std::min(segment_end_samples, n_samples - 1); + filtered_n_samples += (segment_end_samples - segment_start_samples); + + WHISPER_LOG_INFO("%s: Including segment %d: %.2f - %.2f (duration: %.2f)\n", + __func__, i, timestamps.segments[i].start, + timestamps.segments[i].end + (i < timestamps.n_segments - 1 ? overlap_seconds : 0), + (timestamps.segments[i].end - timestamps.segments[i].start) + + (i < timestamps.n_segments - 1 ? overlap_seconds : 0)); + } + int silence_samples = 0.1 * WHISPER_SAMPLE_RATE; + int total_silence_samples = (timestamps.n_segments > 1) ? (timestamps.n_segments - 1) * silence_samples : 0; + int total_samples_needed = filtered_n_samples + total_silence_samples; + + WHISPER_LOG_INFO("%s: total duration of speech segments: %.2f seconds\n", + __func__, (float)filtered_n_samples / WHISPER_SAMPLE_RATE); + + filtered_samples = (float*)malloc(total_samples_needed*sizeof(float)); + if (!filtered_samples) { + WHISPER_LOG_ERROR("%s: failed to allocate memory for filtered samples\n", __func__); + whisper_vad_free_timestamps(×tamps); + whisper_vad_free(vctx); + return -1; + } + int offset = 0; + for (int i = 0; i < timestamps.n_segments; i++) { + int segment_start_samples = timestamps.segments[i].start * WHISPER_SAMPLE_RATE; + int segment_end_samples = timestamps.segments[i].end * WHISPER_SAMPLE_RATE; + + if (i < timestamps.n_segments - 1) { + segment_end_samples += overlap_samples; + } + + segment_start_samples = std::min(segment_start_samples, n_samples - 1); + segment_end_samples = std::min(segment_end_samples, n_samples); + int segment_length = segment_end_samples - segment_start_samples; + + if (segment_length > 0) { + // Copy this speech segment + memcpy(filtered_samples + offset, samples + segment_start_samples, segment_length * sizeof(float)); + offset += segment_length; + + // Add silence after this segment (except after the last segment) + if (i < timestamps.n_segments - 1) { + // Fill with zeros (silence) + memset(filtered_samples + offset, 0, silence_samples * sizeof(float)); + offset += silence_samples; + } + } + } + filtered_n_samples = offset; + WHISPER_LOG_INFO("%s: Reduced audio from %d to %d samples (%.1f%% reduction)\n", + __func__, n_samples, filtered_n_samples, + 100.0f * (1.0f - (float)filtered_n_samples / n_samples)); + + if (whisper_pcm_to_mel_with_state(ctx, state, filtered_samples, filtered_n_samples, params.n_threads) != 0) { + WHISPER_LOG_ERROR("%s: failed to compute log mel spectrogram\n", __func__); + return -2; + } + } else { + WHISPER_LOG_INFO("%s: VAD: No speech detected in audio\n", __func__); + // Abort processing if there is not audio detected? + } + } else { + if (n_samples > 0) { + // compute log mel spectrogram + if (whisper_pcm_to_mel_with_state(ctx, state, samples, n_samples, params.n_threads) != 0) { + WHISPER_LOG_ERROR("%s: failed to compute log mel spectrogram\n", __func__); + return -2; + } } } diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 7cdfed82282..efa1bbe3fc8 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,3 +1,6 @@ +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + if (EMSCRIPTEN) # # test-whisper-js @@ -85,3 +88,18 @@ if (WHISPER_FFMPEG) set_tests_properties(${TEST_TARGET} PROPERTIES LABELS "tiny;mp3") endif() +# VAD test tests VAD in isolation +set(VAD_TEST test-vad) +add_executable(${VAD_TEST} ${VAD_TEST}.cpp) +target_include_directories(${VAD_TEST} PRIVATE ../include ../ggml/include ../examples) +target_link_libraries(${VAD_TEST} PRIVATE common) +add_test(NAME ${VAD_TEST} COMMAND ${VAD_TEST}) +set_tests_properties(${VAD_TEST} PROPERTIES LABELS "unit") + +# VAD test full uses whisper_full with VAD enabled +set(VAD_TEST test-vad-full) +add_executable(${VAD_TEST} ${VAD_TEST}.cpp) +target_include_directories(${VAD_TEST} PRIVATE ../include ../ggml/include ../examples) +target_link_libraries(${VAD_TEST} PRIVATE common) +add_test(NAME ${VAD_TEST} COMMAND ${VAD_TEST}) +set_tests_properties(${VAD_TARGET} PROPERTIES LABELS "base;en") diff --git a/tests/test-vad-full.cpp b/tests/test-vad-full.cpp new file mode 100644 index 00000000000..fb3e1987d69 --- /dev/null +++ b/tests/test-vad-full.cpp @@ -0,0 +1,52 @@ +#include "whisper.h" +#include "common-whisper.h" + +#include +#include +#include +#include + +#ifdef NDEBUG +#undef NDEBUG +#endif + +#include + +int main() { + std::string whisper_model_path = "../../models/ggml-base.en.bin"; + std::string vad_model_path = "../../models/for-tests-silero-v5.1.2-ggml.bin"; + std::string sample_path = "../../samples/jfk.wav"; + + // Load the sample audio file + std::vector pcmf32; + std::vector> pcmf32s; + assert(read_audio_data(sample_path.c_str(), pcmf32, pcmf32s, false)); + + struct whisper_context_params cparams = whisper_context_default_params(); + struct whisper_context * wctx = whisper_init_from_file_with_params( + whisper_model_path.c_str(), + cparams); + + struct whisper_full_params wparams = whisper_full_default_params(WHISPER_SAMPLING_GREEDY); + wparams.vad = true; + wparams.vad_model_path = vad_model_path.c_str(); + wparams.vad_threshold = 0.5f; + wparams.vad_min_speech_duration_ms = 250; + wparams.vad_min_silence_duration_ms = 100; + wparams.vad_max_speech_duration_s = FLT_MAX; + wparams.vad_speech_pad_ms = 30; + wparams.vad_window_size_samples = 512; + + assert(whisper_full_parallel(wctx, wparams, pcmf32.data(), pcmf32.size(), 1) == 0); + + const int n_segments = whisper_full_n_segments(wctx); + assert(n_segments == 2); + assert(strcmp("And so my fellow Americans ask not what you country can do for you.", + whisper_full_get_segment_text(wctx, 0))); + assert(strcmp("Ask what you can do for your country.", + whisper_full_get_segment_text(wctx, 1))); + + whisper_free(wctx); + + return 0; +} diff --git a/tests/test-vad.cpp b/tests/test-vad.cpp new file mode 100644 index 00000000000..0061dea2b58 --- /dev/null +++ b/tests/test-vad.cpp @@ -0,0 +1,88 @@ +#include "whisper.h" +#include "common-whisper.h" + +#include +#include + +#ifdef NDEBUG +#undef NDEBUG +#endif +#include + +void assert_default_params(const struct whisper_vad_params & params) { + assert(params.threshold == 0.5); + assert(params.min_speech_duration_ms == 250); + assert(params.min_silence_duration_ms == 100); + assert(params.window_size_samples == 512); + assert(params.samples_overlap == 0.1f); +} + +void assert_default_context_params(const struct whisper_vad_context_params & params) { + assert(params.n_threads == 4); + assert(params.use_gpu == true); + assert(params.gpu_device == 0); +} + +struct whisper_vad_speech test_detect_speech( + struct whisper_vad_context * vctx, + struct whisper_vad_params params, + const float * pcmf32, + int n_samples) { + struct whisper_vad_speech speech = whisper_vad_detect_speech(vctx, pcmf32, n_samples); + assert(speech.n_probs == 344); + assert(speech.probs != nullptr); + + return speech; +} + +struct whisper_vad_timestamps test_detect_timestamps( + struct whisper_vad_context * vctx, + struct whisper_vad_params params, + struct whisper_vad_speech * speech) { + struct whisper_vad_timestamps timestamps = whisper_vad_timestamps_from_probs(vctx, params, speech); + assert(timestamps.n_segments == 5); + assert(timestamps.segments != nullptr); + + for (int i = 0; i < timestamps.n_segments; ++i) { + printf("VAD segment %d: start = %.2f, end = %.2f\n", + i, timestamps.segments[i].start, timestamps.segments[i].end); + } + + return timestamps; +} + +int main() { + std::string vad_model_path = "../../models/for-tests-silero-v5.1.2-ggml.bin"; + std::string sample_path = "../../samples/jfk.wav"; + + // Load the sample audio file + std::vector pcmf32; + std::vector> pcmf32s; + assert(read_audio_data(sample_path.c_str(), pcmf32, pcmf32s, false)); + assert(pcmf32.size() > 0); + assert(pcmf32s.size() == 0); // no stereo vector + + // Load the VAD model + struct whisper_vad_context_params ctx_params = whisper_vad_default_context_params(); + assert_default_context_params(ctx_params); + + struct whisper_vad_context * vctx = whisper_vad_init_from_file_with_params( + vad_model_path.c_str(), + ctx_params); + assert(vctx != nullptr); + + struct whisper_vad_params params = whisper_vad_default_params(); + assert_default_params(params); + + // Test speech probabilites + struct whisper_vad_speech speech = test_detect_speech(vctx, params, pcmf32.data(), pcmf32.size()); + + // Test speech timestamps (uses speech probabilities from above) + struct whisper_vad_timestamps timestamps = test_detect_timestamps(vctx, params, &speech); + + whisper_vad_free_speech(&speech); + whisper_vad_free_timestamps(×tamps); + whisper_vad_free(vctx); + + return 0; +} From 24901683889e6b961848490ffc86be10bb06352b Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 22 Apr 2025 12:40:58 +0200 Subject: [PATCH 02/49] examples : add VAD parameters to CLI [no ci] Example of format: ```console $ ./build/bin/whisper-cli --help usage: ./build/bin/whisper-cli [options] file0 file1 ... supported audio formats: flac, mp3, ogg, wav options: -h, --help [default] show this help message and exit ... Voice Activity Detection (VAD) options: -v, --vad [false ] enable Voice Activity Detection (VAD) -vm FNAME, --vad-model FNAME [ ] VAD model path -vt N, --vad-threshold N [0.50 ] VAD threshold for speech recognition -vs N, --vad_window_size_samples N [512 ] VAD window size -vspd N, --vad_min_speech_duration_ms N [250 ] VAD min speech duration -vsd N, --vad_min_silence_duration_ms N [100 ] VAD min silence duration -vmsd N, --vad_max_speech_duration_s N [FLT_MAX] VAD max speech duration -vp N, --vad_speech_pad_ms N [30 ] VAD speech padding -vo N, --vad_samples_overlap N [0.10 ] VAD samples overlap size ``` The main reason for the separate VAD options section is that the VAD options are longer and made the rest look a little ugly. --- examples/cli/cli.cpp | 47 ++++++++++++++++++++++++++++++++++++++++++++ src/whisper.cpp | 6 +++--- 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/examples/cli/cli.cpp b/examples/cli/cli.cpp index fccfd13eb0d..152e5982f47 100644 --- a/examples/cli/cli.cpp +++ b/examples/cli/cli.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #if defined(_WIN32) #ifndef NOMINMAX @@ -97,6 +98,17 @@ struct whisper_params { std::vector fname_out = {}; grammar_parser::parse_state grammar_parsed; + + // Voice Activity Detection (VAD) parameters + bool vad = false; + std::string vad_model = ""; + float vad_threshold = 0.5f; + int vad_min_speech_duration_ms = 250; + int vad_min_silence_duration_ms = 100; + float vad_max_speech_duration_s = FLT_MAX; + int vad_speech_pad_ms = 30; + int vad_window_size_samples = 512; + float vad_samples_overlap = 0.1f; }; static void whisper_print_usage(int argc, char ** argv, const whisper_params & params); @@ -185,6 +197,16 @@ static bool whisper_params_parse(int argc, char ** argv, whisper_params & params else if ( arg == "--grammar") { params.grammar = ARGV_NEXT; } else if ( arg == "--grammar-rule") { params.grammar_rule = ARGV_NEXT; } else if ( arg == "--grammar-penalty") { params.grammar_penalty = std::stof(ARGV_NEXT); } + // Voice Activity Detection (VAD) + else if (arg == "-v" || arg == "--vad") { params.vad = true; } + else if (arg == "-vm" || arg == "--vad-model") { params.vad_model = ARGV_NEXT; } + else if (arg == "-vt" || arg == "--vad-threshold") { params.vad_threshold = std::stof(ARGV_NEXT); } + else if (arg == "-vsd" || arg == "--vad_min_speech_duration_ms") { params.vad_min_speech_duration_ms = std::stoi(ARGV_NEXT); } + else if (arg == "-vsd" || arg == "--vad_min_silence_duration_ms") { params.vad_min_speech_duration_ms = std::stoi(ARGV_NEXT); } + else if (arg == "-vmsd" || arg == "--vad_max_speech_duration_s") { params.vad_max_speech_duration_s = std::stof(ARGV_NEXT); } + else if (arg == "-vp" || arg == "--vad_speech_pad_ms") { params.vad_speech_pad_ms = std::stoi(ARGV_NEXT); } + else if (arg == "-vs" || arg == "--vad_window_size_samples") { params.vad_window_size_samples = std::stoi(ARGV_NEXT); } + else if (arg == "-vo" || arg == "--vad_samples_overlap") { params.vad_samples_overlap = std::stof(ARGV_NEXT); } else { fprintf(stderr, "error: unknown argument: %s\n", arg.c_str()); whisper_print_usage(argc, argv, params); @@ -254,6 +276,19 @@ static void whisper_print_usage(int /*argc*/, char ** argv, const whisper_params fprintf(stderr, " --grammar GRAMMAR [%-7s] GBNF grammar to guide decoding\n", params.grammar.c_str()); fprintf(stderr, " --grammar-rule RULE [%-7s] top-level GBNF grammar rule name\n", params.grammar_rule.c_str()); fprintf(stderr, " --grammar-penalty N [%-7.1f] scales down logits of nongrammar tokens\n", params.grammar_penalty); + // Voice Activity Detection (VAD) parameters + fprintf(stderr, "\nVoice Activity Detection (VAD) options:\n"); + fprintf(stderr, " -v, --vad [%-7s] enable Voice Activity Detection (VAD)\n", params.vad ? "true" : "false"); + fprintf(stderr, " -vm FNAME, --vad-model FNAME [%-7s] VAD model path\n", params.vad_model.c_str()); + fprintf(stderr, " -vt N, --vad-threshold N [%-7.2f] VAD threshold for speech recognition\n", params.vad_threshold); + fprintf(stderr, " -vs N, --vad_window_size_samples N [%-7d] VAD window size\n", params.vad_window_size_samples); + fprintf(stderr, " -vspd N, --vad_min_speech_duration_ms N [%-7d] VAD min speech duration\n", params.vad_min_speech_duration_ms); + fprintf(stderr, " -vsd N, --vad_min_silence_duration_ms N [%-7d] VAD min silence duration\n", params.vad_min_silence_duration_ms); + fprintf(stderr, " -vmsd N, --vad_max_speech_duration_s N [%-7s] VAD max speech duration\n", params.vad_max_speech_duration_s == FLT_MAX ? + std::string("FLT_MAX").c_str() : + std::to_string(params.vad_max_speech_duration_s).c_str()); + fprintf(stderr, " -vp N, --vad_speech_pad_ms N [%-7d] VAD speech padding\n", params.vad_speech_pad_ms); + fprintf(stderr, " -vo N, --vad_samples_overlap N [%-7.2f] VAD samples overlap size\n", params.vad_samples_overlap); fprintf(stderr, "\n"); } @@ -1131,8 +1166,20 @@ int main(int argc, char ** argv) { wparams.suppress_nst = params.suppress_nst; + wparams.vad = params.vad; + wparams.vad_model_path = params.vad_model.c_str(); + wparams.vad_threshold = params.vad_threshold; + wparams.vad_min_speech_duration_ms = params.vad_min_speech_duration_ms; + wparams.vad_min_silence_duration_ms = params.vad_min_silence_duration_ms; + wparams.vad_max_speech_duration_s = params.vad_max_speech_duration_s; + wparams.vad_speech_pad_ms = params.vad_speech_pad_ms; + wparams.vad_window_size_samples = params.vad_window_size_samples; + wparams.vad_samples_overlap = params.vad_samples_overlap; + whisper_print_user_data user_data = { ¶ms, &pcmf32s, 0 }; + + const auto & grammar_parsed = params.grammar_parsed; auto grammar_rules = grammar_parsed.c_rules(); diff --git a/src/whisper.cpp b/src/whisper.cpp index efd456801c8..78244798f2f 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4520,7 +4520,7 @@ static ggml_backend_buffer_type_t select_weight_buft(const whisper_vad_hparams & return nullptr; } -static ggml_tensor * whisper_vad_build_stft_layer(ggml_context* ctx0, +static ggml_tensor * whisper_vad_build_stft_layer(ggml_context * ctx0, const whisper_vad_model & model, ggml_tensor * cur) { // Apply reflective padding to the input tensor ggml_tensor * padded = ggml_pad_reflect_1d(ctx0, cur, 64, 64); @@ -4548,7 +4548,7 @@ static ggml_tensor * whisper_vad_build_stft_layer(ggml_context* ctx0, return magnitude; } -static ggml_tensor * whisper_vad_build_encoder_layer(ggml_context* ctx0, +static ggml_tensor * whisper_vad_build_encoder_layer(ggml_context * ctx0, const whisper_vad_model & model, ggml_tensor * cur) { // First Conv1D: expands to 128 channels. cur = ggml_conv_1d(ctx0, model.encoder_0_weight, cur, 1, 1, 1); @@ -4573,7 +4573,7 @@ static ggml_tensor * whisper_vad_build_encoder_layer(ggml_context* ctx0, return cur; } -static ggml_tensor * whisper_vad_build_lstm_layer(ggml_context* ctx0, +static ggml_tensor * whisper_vad_build_lstm_layer(ggml_context * ctx0, const whisper_vad_context & vctx, ggml_tensor * cur, ggml_cgraph * gf) { const whisper_vad_model & model = vctx.model; const int hdim = model.hparams.lstm_hidden_size; From eb23253beb79430e99e8f9ee12faee9090ad9ed2 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Mon, 28 Apr 2025 09:09:20 +0200 Subject: [PATCH 03/49] ci : add job to test VAD This commit adds a job to the CI pipeline to test the VAD model. This will only test the VAD model in isolation, that is it does not test whisper_full. --- .github/workflows/build.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7e8d461f077..ada1a312636 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1253,3 +1253,23 @@ jobs: source venv/bin/activate pip install ane_transformers openai-whisper coremltools ./models/generate-coreml-model.sh ${{ env.MODEL_NAME }} + + vad: + if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' || + github.event.inputs.run_type == 'full-ci' }} + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Build + shell: bash + run: | + cmake -B build + cmake --build build --config Release + + - name: Test + shell: bash + run: | + ctest -R ^test-vad$ --test-dir build --output-on-failure -VV From 59252c2bc73b4586f773348189c30f774801c859 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Fri, 2 May 2025 11:59:42 +0200 Subject: [PATCH 04/49] vad : map timestamps to original audio This commit adds a mapping of the original audio timestamps to the timestamps of the segments in the VAD (Voice Activity Detection) process. The motivation for this change is when we process the original audio signal and only pass the speech segments to whisper_full, the timestamps that whisper returnes when calling functions like whisper_full_get_segment_t0 are the timestamps for the "VAD" segments and not the original audio. The values are not identical to the the timestamps processed without VAD enabled but they are close, and hopefully close enough. --- src/whisper.cpp | 147 ++++++++++++++++++++++++++++++++++++++-- tests/test-vad-full.cpp | 4 ++ 2 files changed, 147 insertions(+), 4 deletions(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index 78244798f2f..2d2b933e037 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -952,6 +952,15 @@ struct whisper_state { // [EXPERIMENTAL] speed-up techniques int32_t exp_n_audio_ctx = 0; // 0 - use default + + struct vad_segment_info { + float orig_start; + float orig_end; + float vad_start; + float vad_end; + }; + std::vector vad_segments; + bool has_vad_segments = false; }; struct whisper_context { @@ -6699,6 +6708,10 @@ int whisper_full_with_state( struct whisper_vad_timestamps timestamps = whisper_vad_detect_speech_timestamps(vctx, vad_params, samples, n_samples); if (timestamps.n_segments > 0) { + state->has_vad_segments = true; + ctx->state->vad_segments.clear(); + ctx->state->vad_segments.reserve(timestamps.n_segments); + WHISPER_LOG_INFO("%s: detected %d speech segments\n", __func__, timestamps.n_segments); float overlap_seconds = params.vad_samples_overlap; int overlap_samples = overlap_seconds * WHISPER_SAMPLE_RATE; @@ -6748,6 +6761,19 @@ int whisper_full_with_state( int segment_length = segment_end_samples - segment_start_samples; if (segment_length > 0) { + whisper_state::vad_segment_info segment; + + segment.orig_start = timestamps.segments[i].start; + segment.orig_end = timestamps.segments[i].end; + + segment.vad_start = offset / (float)WHISPER_SAMPLE_RATE; + segment.vad_end = (offset + segment_length) / (float)WHISPER_SAMPLE_RATE; + + + WHISPER_LOG_INFO("%s: vad_segment_info: orig_start: %.2f, orig_end: %.2f, vad_start: %.2f, vad_end: %.2f\n", + __func__, segment.orig_start, segment.orig_end, segment.vad_start, segment.vad_end); + ctx->state->vad_segments.push_back(segment); + // Copy this speech segment memcpy(filtered_samples + offset, samples + segment_start_samples, segment_length * sizeof(float)); offset += segment_length; @@ -7822,19 +7848,132 @@ int whisper_full_lang_id(struct whisper_context * ctx) { } int64_t whisper_full_get_segment_t0_from_state(struct whisper_state * state, int i_segment) { - return state->result_all[i_segment].t0; + // If VAD wasn't used, return the original timestamp + if (!state->has_vad_segments || state->vad_segments.empty()) { + return state->result_all[i_segment].t0; + } + + // For the first segment, always start at 0 + if (i_segment == 0) { + return 0; + } + + // Get the start timestamp produced by whisper_full. whisper_full processes + // only the speech segments in this case so we need to map these timestamps + // back to the original audio. + float t0 = state->result_all[i_segment].t0 / 100.0f; + + // Find which VAD segment this timestamp belongs. + for (size_t i = 0; i < state->vad_segments.size(); i++) { + const auto& segment = state->vad_segments[i]; + + // Check if the timestamp falls within this segment. + if (t0 >= segment.vad_start && t0 <= segment.vad_end) { + float proportion = 0.0f; + if (segment.vad_end > segment.vad_start) { + proportion = (t0 - segment.vad_start) / (segment.vad_end - segment.vad_start); + } + float orig_t0 = segment.orig_start + proportion * (segment.orig_end - segment.orig_start); + return (int64_t)(orig_t0 * 100); + } + } + + // Check if the timestamp falls between two segments. + for (size_t i = 0; i < state->vad_segments.size() - 1; i++) { + const auto & curr = state->vad_segments[i]; + const auto & next = state->vad_segments[i + 1]; + + if (t0 > curr.vad_end && t0 < next.vad_start) { + // Calculate how far we are through the gap as a proportion + float gap_proportion = 0.0f; + if (next.vad_start > curr.vad_end) { + gap_proportion = (t0 - curr.vad_end) / (next.vad_start - curr.vad_end); + } + float orig_t0 = curr.orig_end + gap_proportion * (next.orig_start - curr.orig_end); + return (int64_t)(orig_t0 * 100); + } + } + + // Handle the case where the timestamp is after the last segment. + if (t0 > state->vad_segments.back().vad_end) { + // For timestamps after the last segment, add the extra time to the end of the last segment + const auto& last = state->vad_segments.back(); + // Calculate how far beyond the last segment + float extra_time = t0 - last.vad_end; + // Add this extra time to the original end time + float orig_t0 = last.orig_end + extra_time; + return (int64_t)(orig_t0 * 100); + } + + WHISPER_LOG_WARN("%s: Could not map t0 = %f to a VAD segment\n", __func__, t0); + return t0; } int64_t whisper_full_get_segment_t0(struct whisper_context * ctx, int i_segment) { - return ctx->state->result_all[i_segment].t0; + return whisper_full_get_segment_t0_from_state(ctx->state, i_segment); } int64_t whisper_full_get_segment_t1_from_state(struct whisper_state * state, int i_segment) { - return state->result_all[i_segment].t1; + // If VAD wasn't used, return the original timestamp + if (!state->has_vad_segments || state->vad_segments.empty()) { + return state->result_all[i_segment].t1; + } + + // Get the end timestamp produced by whisper_full. whisper_full processes + // only the speech segments in this case so we need to map these timestamps + // back to the original audio. + float t1 = state->result_all[i_segment].t1 / 100.0f; + + // Find which VAD segment this timestamp belongs. + for (size_t i = 0; i < state->vad_segments.size(); i++) { + const auto& segment = state->vad_segments[i]; + + // Check if the timestamp falls within this segment. + if (t1 >= segment.vad_start && t1 <= segment.vad_end) { + // Calculate the proportion through the filtered segment. + float proportion = 0.0f; + if (segment.vad_end > segment.vad_start) { + proportion = (t1 - segment.vad_start) / (segment.vad_end - segment.vad_start); + } + float orig_t1 = segment.orig_start + proportion * (segment.orig_end - segment.orig_start); + return (int64_t)(orig_t1 * 100); + } + } + + // Check if the timestamp falls between two segments. + for (size_t i = 0; i < state->vad_segments.size() - 1; i++) { + const auto & curr = state->vad_segments[i]; + const auto & next = state->vad_segments[i + 1]; + + if (t1 > curr.vad_end && t1 < next.vad_start) { + // Calculate how far we are through the gap as a proportion + float gap_proportion = 0.0f; + if (next.vad_start > curr.vad_end) { + gap_proportion = (t1 - curr.vad_end) / (next.vad_start - curr.vad_end); + } + // Map to the corresponding position in the original gap + float orig_t1 = curr.orig_end + gap_proportion * (next.orig_start - curr.orig_end); + return (int64_t)(orig_t1 * 100); + } + } + + // Handle the case where the timestamp is after the last segment + if (t1 > state->vad_segments.back().vad_end) { + // For the last segment, use the end of the last VAD segment + const auto& last = state->vad_segments.back(); + // Calculate how far beyond the last segment + float extra_time = t1 - last.vad_end; + // Add this extra time to the original end time + float orig_t1 = last.orig_end + extra_time; + return (int64_t)(orig_t1 * 100); + } + + WHISPER_LOG_WARN("%s: Could not map t1 = %f to a VAD segment\n", __func__, t1); + return t1; } int64_t whisper_full_get_segment_t1(struct whisper_context * ctx, int i_segment) { - return ctx->state->result_all[i_segment].t1; + return whisper_full_get_segment_t1_from_state(ctx->state, i_segment); } bool whisper_full_get_segment_speaker_turn_next_from_state(struct whisper_state * state, int i_segment) { diff --git a/tests/test-vad-full.cpp b/tests/test-vad-full.cpp index fb3e1987d69..2ef10a0495a 100644 --- a/tests/test-vad-full.cpp +++ b/tests/test-vad-full.cpp @@ -41,11 +41,15 @@ int main() { const int n_segments = whisper_full_n_segments(wctx); assert(n_segments == 2); + assert(strcmp("And so my fellow Americans ask not what you country can do for you.", whisper_full_get_segment_text(wctx, 0))); assert(strcmp("Ask what you can do for your country.", whisper_full_get_segment_text(wctx, 1))); + assert(whisper_full_get_segment_t0(wctx, 0) == 0); + assert(whisper_full_get_segment_t1(wctx, 1) == 1047); + whisper_free(wctx); return 0; From 37a36a33c43884a5cd6a4ddbebf2a8cf09849b83 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sat, 3 May 2025 07:26:45 +0200 Subject: [PATCH 05/49] squash! vad : add initial Voice Activity Detection (VAD) support [no ci] Free filtered samples after VAD processing. --- src/whisper.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/whisper.cpp b/src/whisper.cpp index 2d2b933e037..c9ce688f633 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -6793,8 +6793,10 @@ int whisper_full_with_state( if (whisper_pcm_to_mel_with_state(ctx, state, filtered_samples, filtered_n_samples, params.n_threads) != 0) { WHISPER_LOG_ERROR("%s: failed to compute log mel spectrogram\n", __func__); + free(filtered_samples); return -2; } + free(filtered_samples); } else { WHISPER_LOG_INFO("%s: VAD: No speech detected in audio\n", __func__); // Abort processing if there is not audio detected? From 033c0ce28f4c56fffc16bdbaf02dcad79f10c232 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sat, 3 May 2025 08:32:17 +0200 Subject: [PATCH 06/49] vad : extract VAD processing to a separate function This commit extracts the VAD processing from whisper_full_with_state to an separate function to make the code more readable. --- src/whisper.cpp | 227 +++++++++++++++++++++++++----------------------- 1 file changed, 120 insertions(+), 107 deletions(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index c9ce688f633..3d2c39d7d63 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -6681,133 +6681,146 @@ static void whisper_sequence_score( } } -int whisper_full_with_state( - struct whisper_context * ctx, - struct whisper_state * state, - struct whisper_full_params params, - const float * samples, - int n_samples) { - // clear old results - auto & result_all = state->result_all; +static bool whisper_vad( + struct whisper_context * ctx, + struct whisper_state * state, + struct whisper_full_params params, + const float * samples, + int n_samples, + float ** filtered_samples, + int & filtered_n_samples) { + WHISPER_LOG_INFO("%s: VAD is enabled, processing speach segments only\n", __func__); + struct whisper_vad_context_params vad_ctx_params = whisper_vad_default_context_params(); + struct whisper_vad_context * vctx = whisper_vad_init_from_file_with_params(params.vad_model_path, vad_ctx_params); + if (vctx == nullptr) { + WHISPER_LOG_ERROR("%s: failed to initialize VAD context\n", __func__); + return false; + } - result_all.clear(); + struct whisper_vad_params vad_params = whisper_vad_params_from(params); + struct whisper_vad_timestamps timestamps = whisper_vad_detect_speech_timestamps(vctx, vad_params, samples, n_samples); - float * filtered_samples = nullptr; - int filtered_n_samples = n_samples; - if (params.vad) { - WHISPER_LOG_INFO("%s: VAD is enabled, processing speach segments only\n", __func__); - struct whisper_vad_context_params vad_ctx_params = whisper_vad_default_context_params(); - struct whisper_vad_context * vctx = whisper_vad_init_from_file_with_params( - params.vad_model_path, - vad_ctx_params); - if (vctx == nullptr) { - WHISPER_LOG_ERROR("%s: failed to initialize VAD context\n", __func__); - return -1; + if (timestamps.n_segments > 0) { + state->has_vad_segments = true; + ctx->state->vad_segments.clear(); + ctx->state->vad_segments.reserve(timestamps.n_segments); + + WHISPER_LOG_INFO("%s: detected %d speech segments\n", __func__, timestamps.n_segments); + float overlap_seconds = params.vad_samples_overlap; + int overlap_samples = overlap_seconds * WHISPER_SAMPLE_RATE; + + filtered_n_samples = 0; + for (int i = 0; i < timestamps.n_segments; i++) { + int segment_start_samples = timestamps.segments[i].start * WHISPER_SAMPLE_RATE; + int segment_end_samples = timestamps.segments[i].end * WHISPER_SAMPLE_RATE; + + if (i < timestamps.n_segments - 1) { + segment_end_samples += overlap_samples; + } + segment_end_samples = std::min(segment_end_samples, n_samples - 1); + filtered_n_samples += (segment_end_samples - segment_start_samples); + + WHISPER_LOG_INFO("%s: Including segment %d: %.2f - %.2f (duration: %.2f)\n", + __func__, i, timestamps.segments[i].start, + timestamps.segments[i].end + (i < timestamps.n_segments - 1 ? overlap_seconds : 0), + (timestamps.segments[i].end - timestamps.segments[i].start) + + (i < timestamps.n_segments - 1 ? overlap_seconds : 0)); } - struct whisper_vad_params vad_params = whisper_vad_params_from(params); - struct whisper_vad_timestamps timestamps = whisper_vad_detect_speech_timestamps(vctx, vad_params, samples, n_samples); - if (timestamps.n_segments > 0) { - state->has_vad_segments = true; - ctx->state->vad_segments.clear(); - ctx->state->vad_segments.reserve(timestamps.n_segments); + int silence_samples = 0.1 * WHISPER_SAMPLE_RATE; + int total_silence_samples = (timestamps.n_segments > 1) ? (timestamps.n_segments - 1) * silence_samples : 0; + int total_samples_needed = filtered_n_samples + total_silence_samples; - WHISPER_LOG_INFO("%s: detected %d speech segments\n", __func__, timestamps.n_segments); - float overlap_seconds = params.vad_samples_overlap; - int overlap_samples = overlap_seconds * WHISPER_SAMPLE_RATE; + WHISPER_LOG_INFO("%s: total duration of speech segments: %.2f seconds\n", + __func__, (float)filtered_n_samples / WHISPER_SAMPLE_RATE); - filtered_n_samples = 0; - for (int i = 0; i < timestamps.n_segments; i++) { - int segment_start_samples = timestamps.segments[i].start * WHISPER_SAMPLE_RATE; - int segment_end_samples = timestamps.segments[i].end * WHISPER_SAMPLE_RATE; + *filtered_samples = (float*)malloc(total_samples_needed*sizeof(float)); + if (!filtered_samples) { + WHISPER_LOG_ERROR("%s: failed to allocate memory for filtered samples\n", __func__); + whisper_vad_free_timestamps(×tamps); + whisper_vad_free(vctx); + return false; + } - if (i < timestamps.n_segments - 1) { - segment_end_samples += overlap_samples; - } - segment_end_samples = std::min(segment_end_samples, n_samples - 1); - filtered_n_samples += (segment_end_samples - segment_start_samples); - - WHISPER_LOG_INFO("%s: Including segment %d: %.2f - %.2f (duration: %.2f)\n", - __func__, i, timestamps.segments[i].start, - timestamps.segments[i].end + (i < timestamps.n_segments - 1 ? overlap_seconds : 0), - (timestamps.segments[i].end - timestamps.segments[i].start) + - (i < timestamps.n_segments - 1 ? overlap_seconds : 0)); - } - int silence_samples = 0.1 * WHISPER_SAMPLE_RATE; - int total_silence_samples = (timestamps.n_segments > 1) ? (timestamps.n_segments - 1) * silence_samples : 0; - int total_samples_needed = filtered_n_samples + total_silence_samples; - - WHISPER_LOG_INFO("%s: total duration of speech segments: %.2f seconds\n", - __func__, (float)filtered_n_samples / WHISPER_SAMPLE_RATE); - - filtered_samples = (float*)malloc(total_samples_needed*sizeof(float)); - if (!filtered_samples) { - WHISPER_LOG_ERROR("%s: failed to allocate memory for filtered samples\n", __func__); - whisper_vad_free_timestamps(×tamps); - whisper_vad_free(vctx); - return -1; - } - int offset = 0; - for (int i = 0; i < timestamps.n_segments; i++) { - int segment_start_samples = timestamps.segments[i].start * WHISPER_SAMPLE_RATE; - int segment_end_samples = timestamps.segments[i].end * WHISPER_SAMPLE_RATE; + int offset = 0; + for (int i = 0; i < timestamps.n_segments; i++) { + int segment_start_samples = timestamps.segments[i].start * WHISPER_SAMPLE_RATE; + int segment_end_samples = timestamps.segments[i].end * WHISPER_SAMPLE_RATE; - if (i < timestamps.n_segments - 1) { - segment_end_samples += overlap_samples; - } + if (i < timestamps.n_segments - 1) { + segment_end_samples += overlap_samples; + } - segment_start_samples = std::min(segment_start_samples, n_samples - 1); - segment_end_samples = std::min(segment_end_samples, n_samples); - int segment_length = segment_end_samples - segment_start_samples; + segment_start_samples = std::min(segment_start_samples, n_samples - 1); + segment_end_samples = std::min(segment_end_samples, n_samples); + int segment_length = segment_end_samples - segment_start_samples; - if (segment_length > 0) { - whisper_state::vad_segment_info segment; + if (segment_length > 0) { + whisper_state::vad_segment_info segment; - segment.orig_start = timestamps.segments[i].start; - segment.orig_end = timestamps.segments[i].end; + segment.orig_start = timestamps.segments[i].start; + segment.orig_end = timestamps.segments[i].end; - segment.vad_start = offset / (float)WHISPER_SAMPLE_RATE; - segment.vad_end = (offset + segment_length) / (float)WHISPER_SAMPLE_RATE; + segment.vad_start = offset / (float)WHISPER_SAMPLE_RATE; + segment.vad_end = (offset + segment_length) / (float)WHISPER_SAMPLE_RATE; - WHISPER_LOG_INFO("%s: vad_segment_info: orig_start: %.2f, orig_end: %.2f, vad_start: %.2f, vad_end: %.2f\n", - __func__, segment.orig_start, segment.orig_end, segment.vad_start, segment.vad_end); - ctx->state->vad_segments.push_back(segment); + WHISPER_LOG_INFO("%s: vad_segment_info: orig_start: %.2f, orig_end: %.2f, vad_start: %.2f, vad_end: %.2f\n", + __func__, segment.orig_start, segment.orig_end, segment.vad_start, segment.vad_end); + ctx->state->vad_segments.push_back(segment); - // Copy this speech segment - memcpy(filtered_samples + offset, samples + segment_start_samples, segment_length * sizeof(float)); - offset += segment_length; + // Copy this speech segment + memcpy(*filtered_samples + offset, samples + segment_start_samples, segment_length * sizeof(float)); + offset += segment_length; - // Add silence after this segment (except after the last segment) - if (i < timestamps.n_segments - 1) { - // Fill with zeros (silence) - memset(filtered_samples + offset, 0, silence_samples * sizeof(float)); - offset += silence_samples; - } + // Add silence after this segment (except after the last segment) + if (i < timestamps.n_segments - 1) { + // Fill with zeros (silence) + memset(*filtered_samples + offset, 0, silence_samples * sizeof(float)); + offset += silence_samples; } } - filtered_n_samples = offset; - WHISPER_LOG_INFO("%s: Reduced audio from %d to %d samples (%.1f%% reduction)\n", - __func__, n_samples, filtered_n_samples, - 100.0f * (1.0f - (float)filtered_n_samples / n_samples)); + } + filtered_n_samples = offset; + WHISPER_LOG_INFO("%s: Reduced audio from %d to %d samples (%.1f%% reduction)\n", + __func__, n_samples, filtered_n_samples, 100.0f * (1.0f - (float)filtered_n_samples / n_samples)); + } + return true; +} - if (whisper_pcm_to_mel_with_state(ctx, state, filtered_samples, filtered_n_samples, params.n_threads) != 0) { - WHISPER_LOG_ERROR("%s: failed to compute log mel spectrogram\n", __func__); - free(filtered_samples); - return -2; - } - free(filtered_samples); - } else { - WHISPER_LOG_INFO("%s: VAD: No speech detected in audio\n", __func__); - // Abort processing if there is not audio detected? +int whisper_full_with_state( + struct whisper_context * ctx, + struct whisper_state * state, + struct whisper_full_params params, + const float * samples, + int n_samples) { + // clear old results + auto & result_all = state->result_all; + + result_all.clear(); + + const float * process_samples = samples; + int n_process_samples = n_samples; + std::unique_ptr vad_samples(nullptr, free); + + if (params.vad) { + WHISPER_LOG_INFO("%s: VAD is enabled, processing speach segments only\n", __func__); + float * raw_vad_samples = nullptr; + int vad_n_samples; + if (!whisper_vad(ctx, state, params, samples, n_samples, &raw_vad_samples, vad_n_samples)) { + WHISPER_LOG_ERROR("%s: failed to compute VAD\n", __func__); + return -1; } - } else { - if (n_samples > 0) { - // compute log mel spectrogram - if (whisper_pcm_to_mel_with_state(ctx, state, samples, n_samples, params.n_threads) != 0) { - WHISPER_LOG_ERROR("%s: failed to compute log mel spectrogram\n", __func__); - return -2; - } + vad_samples.reset(raw_vad_samples); + process_samples = vad_samples.get(); + n_process_samples = vad_n_samples; + } + + if (n_process_samples > 0) { + // compute log mel spectrogram + if (whisper_pcm_to_mel_with_state(ctx, state, process_samples, n_process_samples, params.n_threads) != 0) { + WHISPER_LOG_ERROR("%s: failed to compute log mel spectrogram\n", __func__); + return -2; } } From 028481e98c9a7577ea6d202b4fda528ddec5d4de Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sun, 4 May 2025 10:15:01 +0200 Subject: [PATCH 07/49] vad : add TODOs to optimize segment access [no ci] --- src/whisper.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/whisper.cpp b/src/whisper.cpp index 3d2c39d7d63..f920a32b865 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -7879,6 +7879,9 @@ int64_t whisper_full_get_segment_t0_from_state(struct whisper_state * state, int float t0 = state->result_all[i_segment].t0 / 100.0f; // Find which VAD segment this timestamp belongs. + // TODO(danbev) This could be optimized by using a binary search if the number + // of segments exceed a certain limit. Also we might be able to assume that + // the access pattern is sequential and optimized for that too. for (size_t i = 0; i < state->vad_segments.size(); i++) { const auto& segment = state->vad_segments[i]; @@ -7940,6 +7943,9 @@ int64_t whisper_full_get_segment_t1_from_state(struct whisper_state * state, int float t1 = state->result_all[i_segment].t1 / 100.0f; // Find which VAD segment this timestamp belongs. + // TODO(danbev) This could be optimized by using a binary search if the number + // of segments exceed a certain limit. Also we might be able to assume that + // the access pattern is sequential and optimized for that too. for (size_t i = 0; i < state->vad_segments.size(); i++) { const auto& segment = state->vad_segments[i]; From fc7ebf20dc8e05ad02711480bd543ca9ca08234e Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sun, 4 May 2025 13:46:43 +0200 Subject: [PATCH 08/49] vad : only use CPU backend for VAD processing [no ci] This commit modifies the VAD code to only use the CPU backend for VAD processing. There is currently an issue with the GPU backend which I need to investigate further. It is also not clear to me if running the VAD processing on a GPU is actually beneficial. --- src/whisper.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index f920a32b865..de5e40483fd 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4875,12 +4875,15 @@ struct whisper_vad_context * whisper_vad_init_with_params_no_state(struct whispe buft_list_t buft_list = make_buft_list(wparams); auto create_tensor = [&](vad_tensor type, ggml_tensor * meta) -> ggml_tensor * { + /* TODO: Should GPU backend be used for VAD processing? ggml_op op = VAD_TENSOR_OPS.at(type); ggml_backend_buffer_type_t buft = select_weight_buft(hparams, meta, op, buft_list); if (!buft) { throw std::runtime_error(format("failed to find a compatible buffer type for tensor %s", VAD_TENSOR_NAMES.at(type))); } - + */ + // Only use CPU backend for now. + ggml_backend_buffer_type_t buft = ggml_backend_cpu_buffer_type(); ggml_context * ctx = get_ctx(buft); ggml_tensor * tensor = ggml_dup_tensor(ctx, meta); model.tensors[VAD_TENSOR_NAMES.at(type)] = tensor; From 3276232e8053de9ecb94d1d80e7e48ccc10ae770 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sun, 4 May 2025 18:03:33 +0200 Subject: [PATCH 09/49] tests : fix strcmp assert and use beam search This commit fixes a mistake in the usage of strcmp where I missed the actual comparision evaluation. This commit also changes the sampling method from WHISPER_SAMPLING_GREEDY to WHISPER_SAMPLING_BEAM_SEARCH in the to match the default cli behavior. --- tests/test-vad-full.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/tests/test-vad-full.cpp b/tests/test-vad-full.cpp index 2ef10a0495a..5471bf69d61 100644 --- a/tests/test-vad-full.cpp +++ b/tests/test-vad-full.cpp @@ -27,7 +27,7 @@ int main() { whisper_model_path.c_str(), cparams); - struct whisper_full_params wparams = whisper_full_default_params(WHISPER_SAMPLING_GREEDY); + struct whisper_full_params wparams = whisper_full_default_params(WHISPER_SAMPLING_BEAM_SEARCH); wparams.vad = true; wparams.vad_model_path = vad_model_path.c_str(); wparams.vad_threshold = 0.5f; @@ -40,15 +40,13 @@ int main() { assert(whisper_full_parallel(wctx, wparams, pcmf32.data(), pcmf32.size(), 1) == 0); const int n_segments = whisper_full_n_segments(wctx); - assert(n_segments == 2); - - assert(strcmp("And so my fellow Americans ask not what you country can do for you.", - whisper_full_get_segment_text(wctx, 0))); - assert(strcmp("Ask what you can do for your country.", - whisper_full_get_segment_text(wctx, 1))); + assert(n_segments == 1); + assert(strcmp(" And so my fellow Americans, ask not what your country can do for you," + " ask what you can do for your country.", + whisper_full_get_segment_text(wctx, 0)) == 0); assert(whisper_full_get_segment_t0(wctx, 0) == 0); - assert(whisper_full_get_segment_t1(wctx, 1) == 1047); + assert(whisper_full_get_segment_t1(wctx, 0) == 1049); whisper_free(wctx); From abc05c5cafb1445ccc9f489a5395008df95d5179 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Wed, 7 May 2025 15:49:48 +0200 Subject: [PATCH 10/49] vad : dont reshape stft_forward_basis tensor --- models/convert-silero-vad-to-ggml.py | 2 +- models/for-tests-silero-v5.1.2-ggml.bin | Bin 885098 -> 885098 bytes src/whisper.cpp | 11 +++-------- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/models/convert-silero-vad-to-ggml.py b/models/convert-silero-vad-to-ggml.py index 7caed2357b3..078131c91b3 100644 --- a/models/convert-silero-vad-to-ggml.py +++ b/models/convert-silero-vad-to-ggml.py @@ -129,7 +129,7 @@ def convert_silero_vad(output_path, print_tensors=True): # Ensure it has the expected shape print(f"STFT tensor original shape: {data.shape}") n_dims = 3 - tensor_shape = [data.shape[0], data.shape[1], data.shape[2]] + tensor_shape = [data.shape[2], data.shape[1], data.shape[0]] is_conv_weight = True else: # For other tensors, we can use standard processing diff --git a/models/for-tests-silero-v5.1.2-ggml.bin b/models/for-tests-silero-v5.1.2-ggml.bin index 5988dc1d14927b0a3dac30d7221d3ce5a79cb275..c5ddfb537476d36ec6247367769da5decd9bae14 100644 GIT binary patch delta 55 zcmaFWWcI4btf7Umg{g(Pg{6hHg{_6Xg`lne[2], model.stft_forward_basis->ne[1], model.stft_forward_basis->ne[0]); - struct ggml_tensor* stft = ggml_conv_1d(ctx0, stft_reshaped, padded, model.hparams.lstm_input_size, 0, 1); + struct ggml_tensor * stft = ggml_conv_1d(ctx0, model.stft_forward_basis, padded, model.hparams.lstm_input_size, 0, 1); // Calculate cutoff for real/imaginary parts - int cutoff = model.stft_forward_basis->ne[2] / 2 + 1; + int cutoff = model.stft_forward_basis->ne[2] / 2; // Extract real part (first half of the STFT output). struct ggml_tensor * real_part = ggml_view_2d(ctx0, stft, 4, cutoff, stft->nb[1], 0); @@ -4904,7 +4899,7 @@ struct whisper_vad_context * whisper_vad_init_with_params_no_state(struct whispe // SFTF precomputed basis matrix model.stft_forward_basis = create_tensor(VAD_TENSOR_STFT_BASIS, - ggml_new_tensor_3d(ctx, GGML_TYPE_F16, 258, 1, 256)); + ggml_new_tensor_3d(ctx, GGML_TYPE_F16, 256, 1, 258)); model.encoder_0_weight = create_tensor(VAD_TENSOR_ENC_0_WEIGHT, ggml_new_tensor_3d( From 0e18cebaceccf9d9e73909719a18744e01c9d0b3 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Wed, 7 May 2025 15:56:17 +0200 Subject: [PATCH 11/49] vad : use ggml_row_size() and rename hdim_bytes to hdim_size --- src/whisper.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index 18dffdb1d0f..2f4d3e4d2d4 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4581,7 +4581,6 @@ static ggml_tensor * whisper_vad_build_lstm_layer(ggml_context * ctx0, const whisper_vad_context & vctx, ggml_tensor * cur, ggml_cgraph * gf) { const whisper_vad_model & model = vctx.model; const int hdim = model.hparams.lstm_hidden_size; - const int hdim_bytes = hdim * sizeof(float); struct ggml_tensor * x_t = ggml_cont(ctx0, ggml_transpose(ctx0, cur)); @@ -4605,18 +4604,19 @@ static ggml_tensor * whisper_vad_build_lstm_layer(ggml_context * ctx0, // Create add operation to get preactivations for all gates. struct ggml_tensor * out_gate = ggml_add(ctx0, inp_gate, hid_gate); + const size_t hdim_size = ggml_row_size(out_gate->type, hdim); // Create sigmoid for input gate (using the first 128 bytes from the preactivations). - struct ggml_tensor * i_t = ggml_sigmoid(ctx0, ggml_view_1d(ctx0, out_gate, hdim, 0 * hdim_bytes)); + struct ggml_tensor * i_t = ggml_sigmoid(ctx0, ggml_view_1d(ctx0, out_gate, hdim, 0 * hdim_size)); // Create sigmoid for the forget gate (using the second 128 bytes from the preactivations). - struct ggml_tensor * f_t = ggml_sigmoid(ctx0, ggml_view_1d(ctx0, out_gate, hdim, 1 * hdim_bytes)); + struct ggml_tensor * f_t = ggml_sigmoid(ctx0, ggml_view_1d(ctx0, out_gate, hdim, 1 * hdim_size)); // Create sigmoid for the cell gate (using the third 128 bytes from the preactivations). - struct ggml_tensor * g_t = ggml_tanh(ctx0, ggml_view_1d(ctx0, out_gate, hdim, 2 * hdim_bytes)); + struct ggml_tensor * g_t = ggml_tanh(ctx0, ggml_view_1d(ctx0, out_gate, hdim, 2 * hdim_size)); // Create sigmoid for the output gate (using the fourth 128 bytes from the preactivations). - struct ggml_tensor * o_t = ggml_sigmoid(ctx0, ggml_view_1d(ctx0, out_gate, hdim, 3 * hdim_bytes)); + struct ggml_tensor * o_t = ggml_sigmoid(ctx0, ggml_view_1d(ctx0, out_gate, hdim, 3 * hdim_size)); // Update cell state struct ggml_tensor * c_out = ggml_add(ctx0, From 9bf1b4b392b1e8beb597b4d050ac788bfb358382 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Wed, 7 May 2025 16:01:01 +0200 Subject: [PATCH 12/49] vad : remove unnecessary ggml_cont --- src/whisper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index 2f4d3e4d2d4..b95ab1807d0 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4582,7 +4582,7 @@ static ggml_tensor * whisper_vad_build_lstm_layer(ggml_context * ctx0, const whisper_vad_model & model = vctx.model; const int hdim = model.hparams.lstm_hidden_size; - struct ggml_tensor * x_t = ggml_cont(ctx0, ggml_transpose(ctx0, cur)); + struct ggml_tensor * x_t = ggml_transpose(ctx0, cur); // Hidden state from previous time step. struct ggml_tensor * h_in = ggml_new_tensor_1d(ctx0, GGML_TYPE_F32, hdim); From dc5299500cc300ebcb4c81237642fd28148746f7 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Wed, 7 May 2025 16:01:27 +0200 Subject: [PATCH 13/49] vad : fix typo in log message --- src/whisper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index b95ab1807d0..af308e5510f 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -6802,7 +6802,7 @@ int whisper_full_with_state( std::unique_ptr vad_samples(nullptr, free); if (params.vad) { - WHISPER_LOG_INFO("%s: VAD is enabled, processing speach segments only\n", __func__); + WHISPER_LOG_INFO("%s: VAD is enabled, processing speech segments only\n", __func__); float * raw_vad_samples = nullptr; int vad_n_samples; if (!whisper_vad(ctx, state, params, samples, n_samples, &raw_vad_samples, vad_n_samples)) { From 2b0577334a6a06fa22941b4bd7b1f6ae9e32fc4b Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Wed, 7 May 2025 16:02:19 +0200 Subject: [PATCH 14/49] vad : don't use left leaning ref for segment --- src/whisper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index af308e5510f..98bde8365c7 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -7881,7 +7881,7 @@ int64_t whisper_full_get_segment_t0_from_state(struct whisper_state * state, int // of segments exceed a certain limit. Also we might be able to assume that // the access pattern is sequential and optimized for that too. for (size_t i = 0; i < state->vad_segments.size(); i++) { - const auto& segment = state->vad_segments[i]; + const auto & segment = state->vad_segments[i]; // Check if the timestamp falls within this segment. if (t0 >= segment.vad_start && t0 <= segment.vad_end) { From 44bdef1bf0eacbe77c212054603abaf138420cb6 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Wed, 7 May 2025 16:29:39 +0200 Subject: [PATCH 15/49] vad : use std::vector instead float pointers --- src/whisper.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index 98bde8365c7..e66b587595e 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -6685,7 +6685,7 @@ static bool whisper_vad( struct whisper_full_params params, const float * samples, int n_samples, - float ** filtered_samples, + std::vector & filtered_samples, int & filtered_n_samples) { WHISPER_LOG_INFO("%s: VAD is enabled, processing speach segments only\n", __func__); struct whisper_vad_context_params vad_ctx_params = whisper_vad_default_context_params(); @@ -6732,8 +6732,10 @@ static bool whisper_vad( WHISPER_LOG_INFO("%s: total duration of speech segments: %.2f seconds\n", __func__, (float)filtered_n_samples / WHISPER_SAMPLE_RATE); - *filtered_samples = (float*)malloc(total_samples_needed*sizeof(float)); - if (!filtered_samples) { + try { + filtered_samples.reserve(total_samples_needed); + filtered_samples.resize(total_samples_needed); + } catch (const std::bad_alloc & /* e */) { WHISPER_LOG_ERROR("%s: failed to allocate memory for filtered samples\n", __func__); whisper_vad_free_timestamps(×tamps); whisper_vad_free(vctx); @@ -6768,13 +6770,13 @@ static bool whisper_vad( ctx->state->vad_segments.push_back(segment); // Copy this speech segment - memcpy(*filtered_samples + offset, samples + segment_start_samples, segment_length * sizeof(float)); + memcpy(filtered_samples.data() + offset, samples + segment_start_samples, segment_length * sizeof(float)); offset += segment_length; // Add silence after this segment (except after the last segment) if (i < timestamps.n_segments - 1) { // Fill with zeros (silence) - memset(*filtered_samples + offset, 0, silence_samples * sizeof(float)); + memset(filtered_samples.data() + offset, 0, silence_samples * sizeof(float)); offset += silence_samples; } } @@ -6799,18 +6801,16 @@ int whisper_full_with_state( const float * process_samples = samples; int n_process_samples = n_samples; - std::unique_ptr vad_samples(nullptr, free); + std::vector vad_samples; if (params.vad) { WHISPER_LOG_INFO("%s: VAD is enabled, processing speech segments only\n", __func__); - float * raw_vad_samples = nullptr; int vad_n_samples; - if (!whisper_vad(ctx, state, params, samples, n_samples, &raw_vad_samples, vad_n_samples)) { + if (!whisper_vad(ctx, state, params, samples, n_samples, vad_samples, vad_n_samples)) { WHISPER_LOG_ERROR("%s: failed to compute VAD\n", __func__); return -1; } - vad_samples.reset(raw_vad_samples); - process_samples = vad_samples.get(); + process_samples = vad_samples.data(); n_process_samples = vad_n_samples; } From 27eb59bd1605852113fc125fc398df3e2cebbe4e Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Thu, 8 May 2025 06:33:05 +0200 Subject: [PATCH 16/49] vad : enable GPU support for VAD but default to false This commit enables GPU support for VAD processing but defaults to false as there is an issue with this that I've get to figure out. I'll revisit this in the near future. --- src/whisper-arch.h | 12 ++++++------ src/whisper.cpp | 19 ++++++++++--------- tests/test-vad.cpp | 4 +++- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/whisper-arch.h b/src/whisper-arch.h index 4253a88209b..3a65ff35aa0 100644 --- a/src/whisper-arch.h +++ b/src/whisper-arch.h @@ -159,14 +159,14 @@ enum vad_tensor { }; static const std::map VAD_TENSOR_OPS = { - {VAD_TENSOR_STFT_BASIS, GGML_OP_MUL_MAT}, - {VAD_TENSOR_ENC_0_WEIGHT, GGML_OP_MUL_MAT}, + {VAD_TENSOR_STFT_BASIS, GGML_OP_IM2COL}, + {VAD_TENSOR_ENC_0_WEIGHT, GGML_OP_IM2COL}, {VAD_TENSOR_ENC_0_BIAS, GGML_OP_ADD}, - {VAD_TENSOR_ENC_1_WEIGHT, GGML_OP_MUL_MAT}, + {VAD_TENSOR_ENC_1_WEIGHT, GGML_OP_IM2COL}, {VAD_TENSOR_ENC_1_BIAS, GGML_OP_ADD}, - {VAD_TENSOR_ENC_2_WEIGHT, GGML_OP_MUL_MAT}, + {VAD_TENSOR_ENC_2_WEIGHT, GGML_OP_IM2COL}, {VAD_TENSOR_ENC_2_BIAS, GGML_OP_ADD}, - {VAD_TENSOR_ENC_3_WEIGHT, GGML_OP_MUL_MAT}, + {VAD_TENSOR_ENC_3_WEIGHT, GGML_OP_IM2COL}, {VAD_TENSOR_ENC_3_BIAS, GGML_OP_ADD}, {VAD_TENSOR_LSTM_WEIGHT_IH, GGML_OP_MUL_MAT}, @@ -174,7 +174,7 @@ static const std::map VAD_TENSOR_OPS = { {VAD_TENSOR_LSTM_BIAS_IH, GGML_OP_ADD}, {VAD_TENSOR_LSTM_BIAS_HH, GGML_OP_ADD}, - {VAD_TENSOR_FINAL_CONV_WEIGHT, GGML_OP_MUL_MAT}, + {VAD_TENSOR_FINAL_CONV_WEIGHT, GGML_OP_IM2COL}, {VAD_TENSOR_FINAL_CONV_BIAS, GGML_OP_ADD} }; diff --git a/src/whisper.cpp b/src/whisper.cpp index e66b587595e..364dbc6b679 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4372,7 +4372,7 @@ struct whisper_vad_model { std::string version; whisper_vad_hparams hparams; - struct ggml_tensor * stft_forward_basis; // [256, 258] + struct ggml_tensor * stft_forward_basis; // [256, 1, 258] // Encoder tensors - 4 convolutional layers struct ggml_tensor * encoder_0_weight; // [3, 129, 128] @@ -4424,8 +4424,6 @@ struct whisper_vad_context { int n_window; int n_context; int n_threads; - bool use_gpu; - int gpu_device; whisper_vad_model model; whisper_vad_state * state = nullptr; @@ -4438,7 +4436,9 @@ struct whisper_vad_context { struct whisper_vad_context_params whisper_vad_default_context_params(void) { whisper_vad_context_params result = { /*.n_thread = */ 4, - /*.use_gpu = */ true, + // TODO(danbev) Default to true when CUDA GPU support is working: + // https://github.com/ggml-org/whisper.cpp/pull/3065#issuecomment-2858583911 + /*.use_gpu = */ false, /*.gpu_device = */ 0, }; return result; @@ -4680,7 +4680,10 @@ static struct ggml_cgraph * whisper_vad_build_graph(whisper_vad_context & vctx, struct whisper_vad_state * whisper_vad_init_state(whisper_vad_context * ctx) { whisper_vad_state * state = new whisper_vad_state; - state->backends = whisper_backend_init(ctx->params); + auto whisper_context_params = whisper_context_default_params(); + whisper_context_params.use_gpu = ctx->params.use_gpu; + whisper_context_params.gpu_device = ctx->params.gpu_device; + state->backends = whisper_backend_init(whisper_context_params); if (state->backends.empty()) { WHISPER_LOG_ERROR("%s: whisper_backend_init() failed\n", __func__); whisper_vad_free_state(state); @@ -4777,6 +4780,8 @@ struct whisper_vad_context * whisper_vad_init_with_params_no_state(struct whispe whisper_vad_context * vctx = new whisper_vad_context; vctx->n_threads = params.n_threads; + vctx->params.use_gpu = params.use_gpu; + vctx->params.gpu_device = params.gpu_device; auto & model = vctx->model; auto & hparams = model.hparams; @@ -4870,15 +4875,11 @@ struct whisper_vad_context * whisper_vad_init_with_params_no_state(struct whispe buft_list_t buft_list = make_buft_list(wparams); auto create_tensor = [&](vad_tensor type, ggml_tensor * meta) -> ggml_tensor * { - /* TODO: Should GPU backend be used for VAD processing? ggml_op op = VAD_TENSOR_OPS.at(type); ggml_backend_buffer_type_t buft = select_weight_buft(hparams, meta, op, buft_list); if (!buft) { throw std::runtime_error(format("failed to find a compatible buffer type for tensor %s", VAD_TENSOR_NAMES.at(type))); } - */ - // Only use CPU backend for now. - ggml_backend_buffer_type_t buft = ggml_backend_cpu_buffer_type(); ggml_context * ctx = get_ctx(buft); ggml_tensor * tensor = ggml_dup_tensor(ctx, meta); model.tensors[VAD_TENSOR_NAMES.at(type)] = tensor; diff --git a/tests/test-vad.cpp b/tests/test-vad.cpp index 0061dea2b58..4cfd5fa038c 100644 --- a/tests/test-vad.cpp +++ b/tests/test-vad.cpp @@ -19,7 +19,9 @@ void assert_default_params(const struct whisper_vad_params & params) { void assert_default_context_params(const struct whisper_vad_context_params & params) { assert(params.n_threads == 4); - assert(params.use_gpu == true); + // TODO(danbev) Updated this check one CUDA GPU support is stable and the + // default changed to true. + assert(params.use_gpu == false); assert(params.gpu_device == 0); } From 643a91bfc8bddcd0e302ac9765b0147e46f6d68e Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Thu, 8 May 2025 06:37:43 +0200 Subject: [PATCH 17/49] vad : use kebab-case and not snake_case for VAD options --- examples/cli/cli.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/cli/cli.cpp b/examples/cli/cli.cpp index 152e5982f47..27ce67898cb 100644 --- a/examples/cli/cli.cpp +++ b/examples/cli/cli.cpp @@ -201,12 +201,12 @@ static bool whisper_params_parse(int argc, char ** argv, whisper_params & params else if (arg == "-v" || arg == "--vad") { params.vad = true; } else if (arg == "-vm" || arg == "--vad-model") { params.vad_model = ARGV_NEXT; } else if (arg == "-vt" || arg == "--vad-threshold") { params.vad_threshold = std::stof(ARGV_NEXT); } - else if (arg == "-vsd" || arg == "--vad_min_speech_duration_ms") { params.vad_min_speech_duration_ms = std::stoi(ARGV_NEXT); } - else if (arg == "-vsd" || arg == "--vad_min_silence_duration_ms") { params.vad_min_speech_duration_ms = std::stoi(ARGV_NEXT); } - else if (arg == "-vmsd" || arg == "--vad_max_speech_duration_s") { params.vad_max_speech_duration_s = std::stof(ARGV_NEXT); } - else if (arg == "-vp" || arg == "--vad_speech_pad_ms") { params.vad_speech_pad_ms = std::stoi(ARGV_NEXT); } - else if (arg == "-vs" || arg == "--vad_window_size_samples") { params.vad_window_size_samples = std::stoi(ARGV_NEXT); } - else if (arg == "-vo" || arg == "--vad_samples_overlap") { params.vad_samples_overlap = std::stof(ARGV_NEXT); } + else if (arg == "-vsd" || arg == "--vad-min-speech-duration-ms") { params.vad_min_speech_duration_ms = std::stoi(ARGV_NEXT); } + else if (arg == "-vsd" || arg == "--vad-min-silence-duration-ms") { params.vad_min_speech_duration_ms = std::stoi(ARGV_NEXT); } + else if (arg == "-vmsd" || arg == "--vad-max-speech-duration-s") { params.vad_max_speech_duration_s = std::stof(ARGV_NEXT); } + else if (arg == "-vp" || arg == "--vad-speech-pad-ms") { params.vad_speech_pad_ms = std::stoi(ARGV_NEXT); } + else if (arg == "-vs" || arg == "--vad-window-size-samples") { params.vad_window_size_samples = std::stoi(ARGV_NEXT); } + else if (arg == "-vo" || arg == "--vad-samples-overlap") { params.vad_samples_overlap = std::stof(ARGV_NEXT); } else { fprintf(stderr, "error: unknown argument: %s\n", arg.c_str()); whisper_print_usage(argc, argv, params); @@ -281,10 +281,10 @@ static void whisper_print_usage(int /*argc*/, char ** argv, const whisper_params fprintf(stderr, " -v, --vad [%-7s] enable Voice Activity Detection (VAD)\n", params.vad ? "true" : "false"); fprintf(stderr, " -vm FNAME, --vad-model FNAME [%-7s] VAD model path\n", params.vad_model.c_str()); fprintf(stderr, " -vt N, --vad-threshold N [%-7.2f] VAD threshold for speech recognition\n", params.vad_threshold); - fprintf(stderr, " -vs N, --vad_window_size_samples N [%-7d] VAD window size\n", params.vad_window_size_samples); - fprintf(stderr, " -vspd N, --vad_min_speech_duration_ms N [%-7d] VAD min speech duration\n", params.vad_min_speech_duration_ms); - fprintf(stderr, " -vsd N, --vad_min_silence_duration_ms N [%-7d] VAD min silence duration\n", params.vad_min_silence_duration_ms); - fprintf(stderr, " -vmsd N, --vad_max_speech_duration_s N [%-7s] VAD max speech duration\n", params.vad_max_speech_duration_s == FLT_MAX ? + fprintf(stderr, " -vs N, --vad-window-size-samples N [%-7d] VAD window size\n", params.vad_window_size_samples); + fprintf(stderr, " -vspd N, --vad-min-speech-duration-ms N [%-7d] VAD min speech duration\n", params.vad_min_speech_duration_ms); + fprintf(stderr, " -vsd N, --vad-min-silence-duration-ms N [%-7d] VAD min silence duration\n", params.vad_min_silence_duration_ms); + fprintf(stderr, " -vmsd N, --vad-max-speech-duration-s N [%-7s] VAD max speech duration\n", params.vad_max_speech_duration_s == FLT_MAX ? std::string("FLT_MAX").c_str() : std::to_string(params.vad_max_speech_duration_s).c_str()); fprintf(stderr, " -vp N, --vad_speech_pad_ms N [%-7d] VAD speech padding\n", params.vad_speech_pad_ms); From e4d43072b7114a1ce374ad8238bbc5b05b0c047b Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Thu, 8 May 2025 09:54:37 +0200 Subject: [PATCH 18/49] vad : add h_state and c_state to whisper_vad_state This commit adds two new members, h_state and c_state, to the whisper_vad_state structure. These members are used to store the hidden and cell states to avoid having to get and set the LSTM states in the processing. Refs: https://github.com/ggml-org/whisper.cpp/pull/3065#discussion_r2077487936 --- src/whisper.cpp | 86 +++++++++++++++++++++++-------------------------- 1 file changed, 40 insertions(+), 46 deletions(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index 364dbc6b679..6a137be9bc4 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4414,6 +4414,9 @@ struct whisper_vad_model { struct whisper_vad_state { std::vector backends; + struct ggml_tensor * h_state; + struct ggml_tensor * c_state; + whisper_sched sched; }; @@ -4584,22 +4587,12 @@ static ggml_tensor * whisper_vad_build_lstm_layer(ggml_context * ctx0, struct ggml_tensor * x_t = ggml_transpose(ctx0, cur); - // Hidden state from previous time step. - struct ggml_tensor * h_in = ggml_new_tensor_1d(ctx0, GGML_TYPE_F32, hdim); - ggml_set_name(h_in, "h_in"); - ggml_set_input(h_in); - - // Cell state from all previous time steps. - struct ggml_tensor * c_in = ggml_new_tensor_1d(ctx0, GGML_TYPE_F32, hdim); - ggml_set_name(c_in, "c_in"); - ggml_set_input(c_in); - // Create operations using the input-to-hidden weights. struct ggml_tensor * inp_gate = ggml_mul_mat(ctx0, model.lstm_ih_weight, x_t); inp_gate = ggml_add(ctx0, inp_gate, model.lstm_ih_bias); // Create operations using the hidden-to-hidden weights. - struct ggml_tensor * hid_gate = ggml_mul_mat(ctx0, model.lstm_hh_weight, h_in); + struct ggml_tensor * hid_gate = ggml_mul_mat(ctx0, model.lstm_hh_weight, vctx.state->h_state); hid_gate = ggml_add(ctx0, hid_gate, model.lstm_hh_bias); // Create add operation to get preactivations for all gates. @@ -4620,26 +4613,22 @@ static ggml_tensor * whisper_vad_build_lstm_layer(ggml_context * ctx0, // Update cell state struct ggml_tensor * c_out = ggml_add(ctx0, - ggml_mul(ctx0, f_t, c_in), + ggml_mul(ctx0, f_t, vctx.state->c_state), ggml_mul(ctx0, i_t, g_t)); - ggml_set_output(c_out); - ggml_set_name(c_out, "c_out"); - ggml_build_forward_expand(gf, c_out); + ggml_build_forward_expand(gf, ggml_cpy(ctx0, c_out, vctx.state->c_state)); // Update hidden state struct ggml_tensor * out = ggml_mul(ctx0, o_t, ggml_tanh(ctx0, c_out)); - ggml_set_output(out); - ggml_set_name(out, "h_out"); + ggml_build_forward_expand(gf, ggml_cpy(ctx0, out, vctx.state->h_state)); return out; } -static struct ggml_cgraph * whisper_vad_build_graph(whisper_vad_context & vctx, - whisper_vad_state & vstate) { +static struct ggml_cgraph * whisper_vad_build_graph(whisper_vad_context & vctx) { const auto & model = vctx.model; struct ggml_init_params params = { - /*.mem_size =*/ vstate.sched.meta.size(), - /*.mem_buffer =*/ vstate.sched.meta.data(), + /*.mem_size =*/ vctx.state->sched.meta.size(), + /*.mem_buffer =*/ vctx.state->sched.meta.data(), /*.no_alloc =*/ true, }; @@ -4677,12 +4666,13 @@ static struct ggml_cgraph * whisper_vad_build_graph(whisper_vad_context & vctx, return gf; } -struct whisper_vad_state * whisper_vad_init_state(whisper_vad_context * ctx) { +struct whisper_vad_state * whisper_vad_init_state(whisper_vad_context * vctx) { whisper_vad_state * state = new whisper_vad_state; + vctx->state = state; auto whisper_context_params = whisper_context_default_params(); - whisper_context_params.use_gpu = ctx->params.use_gpu; - whisper_context_params.gpu_device = ctx->params.gpu_device; + whisper_context_params.use_gpu = vctx->params.use_gpu; + whisper_context_params.gpu_device = vctx->params.gpu_device; state->backends = whisper_backend_init(whisper_context_params); if (state->backends.empty()) { WHISPER_LOG_ERROR("%s: whisper_backend_init() failed\n", __func__); @@ -4690,10 +4680,30 @@ struct whisper_vad_state * whisper_vad_init_state(whisper_vad_context * ctx) { return nullptr; } + int32_t lstm_hidden_size = vctx->model.hparams.lstm_hidden_size; + struct ggml_init_params params = { + /*.mem_size =*/ size_t(2u*lstm_hidden_size*ggml_tensor_overhead()), + /*.mem_buffer =*/ NULL, + /*.no_alloc =*/ true, + }; + ggml_context * ctx = ggml_init(params); + if (!ctx) { + WHISPER_LOG_ERROR("%s: failed to init LSTM state ggml context\n", __func__); + return nullptr; + } + + // LSTM Hidden state + state->h_state = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, lstm_hidden_size); + ggml_set_name(state->h_state, "h_state"); + + // LSTM Cell state + state->c_state = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, lstm_hidden_size); + ggml_set_name(state->c_state, "c_state"); + { bool ok = whisper_sched_graph_init(state->sched, state->backends, [&]() { - return whisper_vad_build_graph(*ctx, *state); + return whisper_vad_build_graph(*vctx); }); if (!ok) { @@ -4715,7 +4725,7 @@ struct whisper_vad_context * whisper_vad_init_from_file_with_params( return nullptr; } - ctx->state = whisper_vad_init_state(ctx); + whisper_vad_init_state(ctx); if (!ctx->state) { whisper_vad_free(ctx); return nullptr; @@ -5088,7 +5098,6 @@ struct whisper_vad_context * whisper_vad_init_with_params_no_state(struct whispe struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * vctx, const float * pcmf32, int n_samples) { - const int hidden_dim = vctx->model.hparams.lstm_hidden_size; int n_chunks = n_samples / vctx->n_window; if (n_samples % vctx->n_window != 0) { n_chunks += 1; // Add one more chunk for remaining samples. @@ -5098,7 +5107,7 @@ struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * WHISPER_LOG_INFO("%s: detecting speech in %d samples\n", __func__, n_samples); WHISPER_LOG_INFO("%s: n_chunks: %d\n", __func__, n_chunks); - ggml_cgraph * gf = whisper_vad_build_graph(*vctx, *vctx->state); + ggml_cgraph * gf = whisper_vad_build_graph(*vctx); if (!ggml_backend_sched_alloc_graph(sched, gf)) { WHISPER_LOG_ERROR("%s: failed to allocate the compute buffer\n", __func__); @@ -5106,20 +5115,12 @@ struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * } struct ggml_tensor * frame = ggml_graph_get_tensor(gf, "frame"); - struct ggml_tensor * c_out = ggml_graph_get_tensor(gf, "c_out"); - struct ggml_tensor * h_out = ggml_graph_get_tensor(gf, "h_out"); - struct ggml_tensor * c_in = ggml_graph_get_tensor(gf, "c_in"); - struct ggml_tensor * h_in = ggml_graph_get_tensor(gf, "h_in"); struct ggml_tensor * prob = ggml_graph_get_tensor(gf, "prob"); - - ggml_set_zero(c_out); - ggml_set_zero(h_out); ggml_set_zero(prob); - ggml_set_zero(c_in); - ggml_set_zero(h_in); - std::vector h_state(hidden_dim, 0.0f); - std::vector c_state(hidden_dim, 0.0f); + // Reset LSTM hidden/cell states + ggml_set_zero(vctx->state->h_state); + ggml_set_zero(vctx->state->c_state); float * probs= new float[n_chunks]; WHISPER_LOG_INFO("%s: props size: %u\n", __func__, n_chunks); @@ -5152,18 +5153,11 @@ struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * // Set the frame tensor data with the samples. ggml_backend_tensor_set(frame, window.data(), 0, ggml_nelements(frame) * sizeof(float)); - ggml_backend_tensor_set(h_in, h_state.data(), 0, hidden_dim * sizeof(float)); - ggml_backend_tensor_set(c_in, c_state.data(), 0, hidden_dim * sizeof(float)); - if (!ggml_graph_compute_helper(sched, gf, vctx->n_threads)) { WHISPER_LOG_ERROR("%s: failed to compute VAD graph\n", __func__); break; } - // Update the LSTM states - ggml_backend_tensor_get(h_out, h_state.data(), 0, hidden_dim * sizeof(float)); - ggml_backend_tensor_get(c_out, c_state.data(), 0, hidden_dim * sizeof(float)); - // Get the probability for this chunk. ggml_backend_tensor_get(prob, &probs[i], 0, sizeof(float)); From 94c3aba8bd5c9fcb16b44ec3114c1234504ad349 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Thu, 8 May 2025 10:10:35 +0200 Subject: [PATCH 19/49] vad : always initialize filtered_n_samples to 0 This is to avoid the case when not segments are found which would lead to the filtered_n_samples being uninitialized and causing a segfault. --- src/whisper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index 6a137be9bc4..88ddc7d44df 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -6683,6 +6683,7 @@ static bool whisper_vad( std::vector & filtered_samples, int & filtered_n_samples) { WHISPER_LOG_INFO("%s: VAD is enabled, processing speach segments only\n", __func__); + filtered_n_samples = 0; struct whisper_vad_context_params vad_ctx_params = whisper_vad_default_context_params(); struct whisper_vad_context * vctx = whisper_vad_init_from_file_with_params(params.vad_model_path, vad_ctx_params); if (vctx == nullptr) { @@ -6702,7 +6703,6 @@ static bool whisper_vad( float overlap_seconds = params.vad_samples_overlap; int overlap_samples = overlap_seconds * WHISPER_SAMPLE_RATE; - filtered_n_samples = 0; for (int i = 0; i < timestamps.n_segments; i++) { int segment_start_samples = timestamps.segments[i].start * WHISPER_SAMPLE_RATE; int segment_end_samples = timestamps.segments[i].end * WHISPER_SAMPLE_RATE; From e70e486111d32bf607ff9179a785e5cd2af88f94 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Thu, 8 May 2025 12:47:28 +0200 Subject: [PATCH 20/49] vad : use orig timestamp for first segment This commit removes the handling of the first segment which ensured that it always started at zero. This was not correct and we should have been showing the original timestamp that was stored by the VAD processing. There might be better ways to handle this alighment of timestamps perhaps should investigate this further. --- src/whisper.cpp | 5 ----- tests/test-vad-full.cpp | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index 88ddc7d44df..7f394ef1a1b 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -7861,11 +7861,6 @@ int64_t whisper_full_get_segment_t0_from_state(struct whisper_state * state, int return state->result_all[i_segment].t0; } - // For the first segment, always start at 0 - if (i_segment == 0) { - return 0; - } - // Get the start timestamp produced by whisper_full. whisper_full processes // only the speech segments in this case so we need to map these timestamps // back to the original audio. diff --git a/tests/test-vad-full.cpp b/tests/test-vad-full.cpp index 5471bf69d61..3aed0784553 100644 --- a/tests/test-vad-full.cpp +++ b/tests/test-vad-full.cpp @@ -45,7 +45,7 @@ int main() { assert(strcmp(" And so my fellow Americans, ask not what your country can do for you," " ask what you can do for your country.", whisper_full_get_segment_text(wctx, 0)) == 0); - assert(whisper_full_get_segment_t0(wctx, 0) == 0); + assert(whisper_full_get_segment_t0(wctx, 0) == 29); assert(whisper_full_get_segment_t1(wctx, 0) == 1049); whisper_free(wctx); From 436baeb75ceb900facee47e902470a8604e3d52d Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Fri, 9 May 2025 10:17:52 +0300 Subject: [PATCH 21/49] vad : fix buffers and enable GPU support by default --- src/whisper.cpp | 82 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 55 insertions(+), 27 deletions(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index 7f394ef1a1b..7d5e2310830 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -166,7 +166,6 @@ static bool ggml_graph_compute_helper( int n_threads, ggml_abort_callback abort_callback, void * abort_callback_data) { - ggml_backend_ptr backend { ggml_backend_init_by_type(GGML_BACKEND_DEVICE_TYPE_CPU, nullptr) }; auto * reg = ggml_backend_dev_backend_reg(ggml_backend_get_device(backend.get())); @@ -187,8 +186,8 @@ static bool ggml_graph_compute_helper( static bool ggml_graph_compute_helper( ggml_backend_sched_t sched, struct ggml_cgraph * graph, - int n_threads) { - + int n_threads, + bool sched_reset = true) { for (int i = 0; i < ggml_backend_sched_get_n_backends(sched); ++i) { ggml_backend_t backend = ggml_backend_sched_get_backend(sched, i); ggml_backend_dev_t dev = ggml_backend_get_device(backend); @@ -200,8 +199,12 @@ static bool ggml_graph_compute_helper( } } - bool t = ggml_backend_sched_graph_compute(sched, graph) == GGML_STATUS_SUCCESS; - ggml_backend_sched_reset(sched); + const bool t = (ggml_backend_sched_graph_compute(sched, graph) == GGML_STATUS_SUCCESS); + + if (!t || sched_reset) { + ggml_backend_sched_reset(sched); + } + return t; } @@ -4417,6 +4420,10 @@ struct whisper_vad_state { struct ggml_tensor * h_state; struct ggml_tensor * c_state; + ggml_backend_buffer_t buffer = nullptr; + + std::vector ctx_buf; + whisper_sched sched; }; @@ -4439,9 +4446,7 @@ struct whisper_vad_context { struct whisper_vad_context_params whisper_vad_default_context_params(void) { whisper_vad_context_params result = { /*.n_thread = */ 4, - // TODO(danbev) Default to true when CUDA GPU support is working: - // https://github.com/ggml-org/whisper.cpp/pull/3065#issuecomment-2858583911 - /*.use_gpu = */ false, + /*.use_gpu = */ true, /*.gpu_device = */ 0, }; return result; @@ -4597,6 +4602,7 @@ static ggml_tensor * whisper_vad_build_lstm_layer(ggml_context * ctx0, // Create add operation to get preactivations for all gates. struct ggml_tensor * out_gate = ggml_add(ctx0, inp_gate, hid_gate); + const size_t hdim_size = ggml_row_size(out_gate->type, hdim); // Create sigmoid for input gate (using the first 128 bytes from the preactivations). @@ -4619,12 +4625,13 @@ static ggml_tensor * whisper_vad_build_lstm_layer(ggml_context * ctx0, // Update hidden state struct ggml_tensor * out = ggml_mul(ctx0, o_t, ggml_tanh(ctx0, c_out)); - ggml_build_forward_expand(gf, ggml_cpy(ctx0, out, vctx.state->h_state)); + ggml_build_forward_expand(gf, ggml_cpy(ctx0, out, vctx.state->h_state)); + return out; } static struct ggml_cgraph * whisper_vad_build_graph(whisper_vad_context & vctx) { - const auto & model = vctx.model; + const auto & model = vctx.model; struct ggml_init_params params = { /*.mem_size =*/ vctx.state->sched.meta.size(), @@ -4673,6 +4680,7 @@ struct whisper_vad_state * whisper_vad_init_state(whisper_vad_context * vctx) { auto whisper_context_params = whisper_context_default_params(); whisper_context_params.use_gpu = vctx->params.use_gpu; whisper_context_params.gpu_device = vctx->params.gpu_device; + state->backends = whisper_backend_init(whisper_context_params); if (state->backends.empty()) { WHISPER_LOG_ERROR("%s: whisper_backend_init() failed\n", __func__); @@ -4680,15 +4688,20 @@ struct whisper_vad_state * whisper_vad_init_state(whisper_vad_context * vctx) { return nullptr; } - int32_t lstm_hidden_size = vctx->model.hparams.lstm_hidden_size; + const int32_t lstm_hidden_size = vctx->model.hparams.lstm_hidden_size; + + state->ctx_buf.resize(2u*ggml_tensor_overhead()); + struct ggml_init_params params = { - /*.mem_size =*/ size_t(2u*lstm_hidden_size*ggml_tensor_overhead()), - /*.mem_buffer =*/ NULL, + /*.mem_size =*/ state->ctx_buf.size(), + /*.mem_buffer =*/ state->ctx_buf.data(), /*.no_alloc =*/ true, }; + ggml_context * ctx = ggml_init(params); if (!ctx) { WHISPER_LOG_ERROR("%s: failed to init LSTM state ggml context\n", __func__); + whisper_vad_free_state(state); return nullptr; } @@ -4700,6 +4713,13 @@ struct whisper_vad_state * whisper_vad_init_state(whisper_vad_context * vctx) { state->c_state = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, lstm_hidden_size); ggml_set_name(state->c_state, "c_state"); + state->buffer = ggml_backend_alloc_ctx_tensors(ctx, state->backends[0]); + if (!state->buffer) { + WHISPER_LOG_ERROR("%s: failed to allocate memory for the VAD state\n", __func__); + whisper_vad_free_state(state); + return nullptr; + } + { bool ok = whisper_sched_graph_init(state->sched, state->backends, [&]() { @@ -5102,11 +5122,20 @@ struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * if (n_samples % vctx->n_window != 0) { n_chunks += 1; // Add one more chunk for remaining samples. } - auto & sched = vctx->state->sched.sched; - WHISPER_LOG_INFO("%s: detecting speech in %d samples\n", __func__, n_samples); WHISPER_LOG_INFO("%s: n_chunks: %d\n", __func__, n_chunks); + // Reset LSTM hidden/cell states + ggml_backend_buffer_clear(vctx->state->buffer, 0); + + // TODO: move to vad state and change to std::vector + float * probs = new float[n_chunks]; + WHISPER_LOG_INFO("%s: props size: %u\n", __func__, n_chunks); + + std::vector window(vctx->n_window, 0.0f); + + auto & sched = vctx->state->sched.sched; + ggml_cgraph * gf = whisper_vad_build_graph(*vctx); if (!ggml_backend_sched_alloc_graph(sched, gf)) { @@ -5116,19 +5145,13 @@ struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * struct ggml_tensor * frame = ggml_graph_get_tensor(gf, "frame"); struct ggml_tensor * prob = ggml_graph_get_tensor(gf, "prob"); - ggml_set_zero(prob); - // Reset LSTM hidden/cell states - ggml_set_zero(vctx->state->h_state); - ggml_set_zero(vctx->state->c_state); - - float * probs= new float[n_chunks]; - WHISPER_LOG_INFO("%s: props size: %u\n", __func__, n_chunks); - - std::vector window(vctx->n_window, 0.0f); + // we are going to reuse the graph multiple times for each chunk + // TODO: measure time and print timing information for this step for (int i = 0; i < n_chunks; i++) { int start_idx = i * vctx->n_window; int end_idx = std::min(start_idx + vctx->n_window, n_samples); + int chunk_len = end_idx - start_idx; if (chunk_len < vctx->n_window) { @@ -5146,14 +5169,14 @@ struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * } else { // Copy current frame samples to the window. int samples_to_copy = std::min(end_idx - start_idx, vctx->n_window); - std::copy(pcmf32 + start_idx, pcmf32 + start_idx + samples_to_copy, - window.begin()); + std::copy(pcmf32 + start_idx, pcmf32 + start_idx + samples_to_copy, window.begin()); } // Set the frame tensor data with the samples. ggml_backend_tensor_set(frame, window.data(), 0, ggml_nelements(frame) * sizeof(float)); - if (!ggml_graph_compute_helper(sched, gf, vctx->n_threads)) { + // do not reset the scheduler - we will reuse the graph in the next chunk + if (!ggml_graph_compute_helper(sched, gf, vctx->n_threads, false)) { WHISPER_LOG_ERROR("%s: failed to compute VAD graph\n", __func__); break; } @@ -5161,13 +5184,18 @@ struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * // Get the probability for this chunk. ggml_backend_tensor_get(prob, &probs[i], 0, sizeof(float)); + //WHISPER_LOG_DEBUG("chunk %d: p = %7.3f\n", i, probs[i]); } + + ggml_backend_sched_reset(sched); + WHISPER_LOG_INFO("%s: finished processing %d samples\n", __func__, n_samples); struct whisper_vad_speech speech = { /* n_probs = */ n_chunks, /* probs = */ probs, }; + return speech; } From eb2c83eead24ec1caac845f994eb2bbda904dc13 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Fri, 9 May 2025 09:33:49 +0200 Subject: [PATCH 22/49] vad : fix use_gpu assert in test-vad.cpp --- tests/test-vad.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/test-vad.cpp b/tests/test-vad.cpp index 4cfd5fa038c..0061dea2b58 100644 --- a/tests/test-vad.cpp +++ b/tests/test-vad.cpp @@ -19,9 +19,7 @@ void assert_default_params(const struct whisper_vad_params & params) { void assert_default_context_params(const struct whisper_vad_context_params & params) { assert(params.n_threads == 4); - // TODO(danbev) Updated this check one CUDA GPU support is stable and the - // default changed to true. - assert(params.use_gpu == false); + assert(params.use_gpu == true); assert(params.gpu_device == 0); } From 47c8f02dbf2e2182b3f0cc4fcf6a4a10f52f3e94 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Fri, 9 May 2025 09:41:54 +0200 Subject: [PATCH 23/49] vad : remove unnecessary reserve [no ci] --- src/whisper.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index 7d5e2310830..dd9507fcb65 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -6756,7 +6756,6 @@ static bool whisper_vad( __func__, (float)filtered_n_samples / WHISPER_SAMPLE_RATE); try { - filtered_samples.reserve(total_samples_needed); filtered_samples.resize(total_samples_needed); } catch (const std::bad_alloc & /* e */) { WHISPER_LOG_ERROR("%s: failed to allocate memory for filtered samples\n", __func__); From 327cdaee7f38bd29d195ac9520be45a93e51ce8d Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Fri, 9 May 2025 10:13:03 +0200 Subject: [PATCH 24/49] vad : add probs to whisper_vad_state This commit adds a `probs` member to the `whisper_vad_state` struct, which is a vector of floats. A pointer to this data is returned in the `whisper_vad_speech` struct instead of copying the data to a new array, to the data will only be valid for as long as the whisper_vad_state object exists. I was concerned about the performance of copying the data, but I'm not sure if this is a good way to handle this and perhaps a copy would be better. --- src/whisper.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index dd9507fcb65..6047eef3701 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4425,6 +4425,8 @@ struct whisper_vad_state { std::vector ctx_buf; whisper_sched sched; + + std::vector probs; }; struct whisper_vad_context { @@ -5128,8 +5130,7 @@ struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * // Reset LSTM hidden/cell states ggml_backend_buffer_clear(vctx->state->buffer, 0); - // TODO: move to vad state and change to std::vector - float * probs = new float[n_chunks]; + vctx->state->probs.resize(n_chunks); WHISPER_LOG_INFO("%s: props size: %u\n", __func__, n_chunks); std::vector window(vctx->n_window, 0.0f); @@ -5182,7 +5183,7 @@ struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * } // Get the probability for this chunk. - ggml_backend_tensor_get(prob, &probs[i], 0, sizeof(float)); + ggml_backend_tensor_get(prob, &vctx->state->probs[i], 0, sizeof(float)); //WHISPER_LOG_DEBUG("chunk %d: p = %7.3f\n", i, probs[i]); } @@ -5193,7 +5194,7 @@ struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * struct whisper_vad_speech speech = { /* n_probs = */ n_chunks, - /* probs = */ probs, + /* probs = */ vctx->state->probs.data(), }; return speech; @@ -5548,7 +5549,6 @@ void whisper_vad_free_params(whisper_vad_params * params) { } void whisper_vad_free_speech(whisper_vad_speech * speech) { - delete[] speech->probs; speech->probs = nullptr; speech->n_probs = 0; } From bf2b0df9a82747cb17b6e53185f3b689a693b767 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Fri, 9 May 2025 11:13:35 +0200 Subject: [PATCH 25/49] vad : add timing of vad processing [no ci] --- src/whisper.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index 6047eef3701..e14d06664df 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4415,6 +4415,7 @@ struct whisper_vad_model { }; struct whisper_vad_state { + int64_t t_vad_us = 0; std::vector backends; struct ggml_tensor * h_state; @@ -5149,6 +5150,7 @@ struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * // we are going to reuse the graph multiple times for each chunk // TODO: measure time and print timing information for this step + const int64_t t_start_vad_us = ggml_time_us(); for (int i = 0; i < n_chunks; i++) { int start_idx = i * vctx->n_window; int end_idx = std::min(start_idx + vctx->n_window, n_samples); @@ -5187,11 +5189,11 @@ struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * //WHISPER_LOG_DEBUG("chunk %d: p = %7.3f\n", i, probs[i]); } + vctx->state->t_vad_us += ggml_time_us() - t_start_vad_us; + WHISPER_LOG_INFO("%s: vad time = %.2f ms processing %d samples\n", __func__, 1e-3f * vctx->state->t_vad_us, n_samples); ggml_backend_sched_reset(sched); - WHISPER_LOG_INFO("%s: finished processing %d samples\n", __func__, n_samples); - struct whisper_vad_speech speech = { /* n_probs = */ n_chunks, /* probs = */ vctx->state->probs.data(), From 243e0dbad60778df33732bcf9c2fd12aa0f7562a Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Sat, 10 May 2025 10:46:05 +0300 Subject: [PATCH 26/49] vad : force GPU off for now --- include/whisper.h | 2 +- src/whisper.cpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/whisper.h b/include/whisper.h index dce75e1b731..da5d2d64d5d 100644 --- a/include/whisper.h +++ b/include/whisper.h @@ -682,7 +682,7 @@ extern "C" { struct whisper_vad_context_params { int n_threads; // The number of threads to use for processing. bool use_gpu; - int gpu_device; // CUDA device + int gpu_device; // CUDA device }; WHISPER_API struct whisper_vad_context_params whisper_vad_default_context_params(void); diff --git a/src/whisper.cpp b/src/whisper.cpp index e14d06664df..c9d11e0336d 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4681,7 +4681,9 @@ struct whisper_vad_state * whisper_vad_init_state(whisper_vad_context * vctx) { vctx->state = state; auto whisper_context_params = whisper_context_default_params(); - whisper_context_params.use_gpu = vctx->params.use_gpu; + // TODO: GPU VAD is forced disabled until the performance is improved + //whisper_context_params.use_gpu = vctx->params.use_gpu; + whisper_context_params.use_gpu = false; whisper_context_params.gpu_device = vctx->params.gpu_device; state->backends = whisper_backend_init(whisper_context_params); From 65c421de9fb10cccc3cdf6eb99d6a91ca0dfaa41 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Sat, 10 May 2025 10:46:19 +0300 Subject: [PATCH 27/49] vad : minor style and naming changes --- src/whisper.cpp | 50 ++++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index c9d11e0336d..c9d2331a23f 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -5151,30 +5151,30 @@ struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * struct ggml_tensor * prob = ggml_graph_get_tensor(gf, "prob"); // we are going to reuse the graph multiple times for each chunk - // TODO: measure time and print timing information for this step const int64_t t_start_vad_us = ggml_time_us(); + for (int i = 0; i < n_chunks; i++) { - int start_idx = i * vctx->n_window; - int end_idx = std::min(start_idx + vctx->n_window, n_samples); + const int idx_start = i * vctx->n_window; + const int idx_end = std::min(idx_start + vctx->n_window, n_samples); - int chunk_len = end_idx - start_idx; + const int chunk_len = idx_end - idx_start; if (chunk_len < vctx->n_window) { WHISPER_LOG_INFO("%s: chunk_len: %d < n_window: %d\n", __func__, chunk_len, vctx->n_window); std::vector partial_chunk(vctx->n_window, 0.0f); - std::copy(pcmf32 + start_idx, pcmf32 + end_idx, partial_chunk.begin()); + std::copy(pcmf32 + idx_start, pcmf32 + idx_end, partial_chunk.begin()); // Copy the zero-padded chunk to the window. - int max_samples_to_copy = vctx->n_window; - int actual_samples_to_copy = std::min(max_samples_to_copy, (int)partial_chunk.size()); - std::copy(partial_chunk.begin(), partial_chunk.begin() + actual_samples_to_copy, window.begin()); - if (actual_samples_to_copy < max_samples_to_copy) { - std::fill(window.begin() + actual_samples_to_copy, window.end(), 0.0f); + const int samples_to_copy_max = vctx->n_window; + const int samples_to_copy_cur = std::min(samples_to_copy_max, (int)partial_chunk.size()); + std::copy(partial_chunk.begin(), partial_chunk.begin() + samples_to_copy_cur, window.begin()); + if (samples_to_copy_cur < samples_to_copy_max) { + std::fill(window.begin() + samples_to_copy_cur, window.end(), 0.0f); } } else { // Copy current frame samples to the window. - int samples_to_copy = std::min(end_idx - start_idx, vctx->n_window); - std::copy(pcmf32 + start_idx, pcmf32 + start_idx + samples_to_copy, window.begin()); + const int samples_to_copy = std::min(idx_end - idx_start, vctx->n_window); + std::copy(pcmf32 + idx_start, pcmf32 + idx_start + samples_to_copy, window.begin()); } // Set the frame tensor data with the samples. @@ -5191,6 +5191,7 @@ struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * //WHISPER_LOG_DEBUG("chunk %d: p = %7.3f\n", i, probs[i]); } + vctx->state->t_vad_us += ggml_time_us() - t_start_vad_us; WHISPER_LOG_INFO("%s: vad time = %.2f ms processing %d samples\n", __func__, 1e-3f * vctx->state->t_vad_us, n_samples); @@ -5204,7 +5205,6 @@ struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * return speech; } - struct whisper_vad_timestamps whisper_vad_timestamps_from_probs(whisper_vad_context * vctx, whisper_vad_params params, struct whisper_vad_speech * speech) { @@ -5243,7 +5243,7 @@ struct whisper_vad_timestamps whisper_vad_timestamps_from_probs(whisper_vad_cont // max_speech_samples is reached. The value 98 was taken from the original // silaro-vad python implementation: //https://github.com/snakers4/silero-vad/blob/0dd45f0bcd7271463c234f3bae5ad25181f9df8b/src/silero_vad/utils_vad.py#L291 - int min_silence_samples_at_max_speech = sample_rate * 98 / 1000; + int min_silence_samples_at_max_speech = sample_rate * 98 / 1000; // Calculate lower threshold for detecting end of speech segments. float neg_threshold = threshold - 0.15f; @@ -5475,24 +5475,28 @@ struct whisper_vad_timestamps whisper_vad_timestamps_from_probs(whisper_vad_cont if (silence_duration < 2 * speech_pad_samples) { // If segments are close, split the difference speeches[i].end += silence_duration / 2; - speeches[i+1].start = (speeches[i+1].start > silence_duration / 2) ? - (speeches[i+1].start - silence_duration / 2) : 0; + speeches[i+1].start = + (speeches[i+1].start > silence_duration / 2) ? + (speeches[i+1].start - silence_duration / 2) : 0; } else { // Otherwise, apply full padding to both - speeches[i].end = (speeches[i].end + speech_pad_samples < audio_length_samples) ? - (speeches[i].end + speech_pad_samples) : audio_length_samples; - speeches[i+1].start = (speeches[i+1].start > speech_pad_samples) ? - (speeches[i+1].start - speech_pad_samples) : 0; + speeches[i].end = + (speeches[i].end + speech_pad_samples < audio_length_samples) ? + (speeches[i].end + speech_pad_samples) : audio_length_samples; + speeches[i+1].start = + (speeches[i+1].start > speech_pad_samples) ? + (speeches[i+1].start - speech_pad_samples) : 0; } } else { // Apply padding to the end of the last segment - speeches[i].end = (speeches[i].end + speech_pad_samples < audio_length_samples) ? - (speeches[i].end + speech_pad_samples) : audio_length_samples; + speeches[i].end = + (speeches[i].end + speech_pad_samples < audio_length_samples) ? + (speeches[i].end + speech_pad_samples) : audio_length_samples; } // Convert from samples to seconds and copy to final segments segments[i].start = (float)speeches[i].start / sample_rate; - segments[i].end = (float)speeches[i].end / sample_rate; + segments[i].end = (float)speeches[i].end / sample_rate; WHISPER_LOG_INFO("%s: VAD segment %d: start = %.2f, end = %.2f (duration: %.2f)\n", __func__, i, segments[i].start, segments[i].end, segments[i].end - segments[i].start); From cae38fda87288a25e392bd1c904373c0f91e53b5 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Sat, 10 May 2025 10:52:16 +0300 Subject: [PATCH 28/49] vad : minor style --- src/whisper.cpp | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index c9d2331a23f..06473c4e1ec 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -5120,9 +5120,10 @@ struct whisper_vad_context * whisper_vad_init_with_params_no_state(struct whispe return vctx; } -struct whisper_vad_speech whisper_vad_detect_speech(struct whisper_vad_context * vctx, - const float * pcmf32, - int n_samples) { +struct whisper_vad_speech whisper_vad_detect_speech( + struct whisper_vad_context * vctx, + const float * pcmf32, + int n_samples) { int n_chunks = n_samples / vctx->n_window; if (n_samples % vctx->n_window != 0) { n_chunks += 1; // Add one more chunk for remaining samples. @@ -6711,15 +6712,16 @@ static void whisper_sequence_score( } static bool whisper_vad( - struct whisper_context * ctx, - struct whisper_state * state, - struct whisper_full_params params, - const float * samples, - int n_samples, - std::vector & filtered_samples, - int & filtered_n_samples) { + struct whisper_context * ctx, + struct whisper_state * state, + struct whisper_full_params params, + const float * samples, + int n_samples, + std::vector & filtered_samples, + int & filtered_n_samples) { WHISPER_LOG_INFO("%s: VAD is enabled, processing speach segments only\n", __func__); filtered_n_samples = 0; + struct whisper_vad_context_params vad_ctx_params = whisper_vad_default_context_params(); struct whisper_vad_context * vctx = whisper_vad_init_from_file_with_params(params.vad_model_path, vad_ctx_params); if (vctx == nullptr) { @@ -6727,7 +6729,7 @@ static bool whisper_vad( return false; } - struct whisper_vad_params vad_params = whisper_vad_params_from(params); + struct whisper_vad_params vad_params = whisper_vad_params_from(params); struct whisper_vad_timestamps timestamps = whisper_vad_detect_speech_timestamps(vctx, vad_params, samples, n_samples); if (timestamps.n_segments > 0) { @@ -6775,7 +6777,7 @@ static bool whisper_vad( int offset = 0; for (int i = 0; i < timestamps.n_segments; i++) { int segment_start_samples = timestamps.segments[i].start * WHISPER_SAMPLE_RATE; - int segment_end_samples = timestamps.segments[i].end * WHISPER_SAMPLE_RATE; + int segment_end_samples = timestamps.segments[i].end * WHISPER_SAMPLE_RATE; if (i < timestamps.n_segments - 1) { segment_end_samples += overlap_samples; @@ -6789,11 +6791,10 @@ static bool whisper_vad( whisper_state::vad_segment_info segment; segment.orig_start = timestamps.segments[i].start; - segment.orig_end = timestamps.segments[i].end; + segment.orig_end = timestamps.segments[i].end; segment.vad_start = offset / (float)WHISPER_SAMPLE_RATE; - segment.vad_end = (offset + segment_length) / (float)WHISPER_SAMPLE_RATE; - + segment.vad_end = (offset + segment_length) / (float)WHISPER_SAMPLE_RATE; WHISPER_LOG_INFO("%s: vad_segment_info: orig_start: %.2f, orig_end: %.2f, vad_start: %.2f, vad_end: %.2f\n", __func__, segment.orig_start, segment.orig_end, segment.vad_start, segment.vad_end); @@ -6811,10 +6812,12 @@ static bool whisper_vad( } } } + filtered_n_samples = offset; WHISPER_LOG_INFO("%s: Reduced audio from %d to %d samples (%.1f%% reduction)\n", __func__, n_samples, filtered_n_samples, 100.0f * (1.0f - (float)filtered_n_samples / n_samples)); } + return true; } From cd953ebf4386e8dfe91f38b369ebe83fedf0da11 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Sat, 10 May 2025 11:04:06 +0300 Subject: [PATCH 29/49] vad : remove obsolete whisper_vad_free_speech --- include/whisper.h | 28 ++++++++++++++++++---------- src/whisper.cpp | 12 ++++-------- tests/test-vad.cpp | 1 - 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/include/whisper.h b/include/whisper.h index da5d2d64d5d..cf1761c53cf 100644 --- a/include/whisper.h +++ b/include/whisper.h @@ -586,6 +586,7 @@ extern "C" { // NOTE: this function allocates memory, and it is the responsibility of the caller to free the pointer - see whisper_free_context_params & whisper_free_params() WHISPER_API struct whisper_context_params * whisper_context_default_params_by_ref(void); WHISPER_API struct whisper_context_params whisper_context_default_params (void); + WHISPER_API struct whisper_full_params * whisper_full_default_params_by_ref(enum whisper_sampling_strategy strategy); WHISPER_API struct whisper_full_params whisper_full_default_params (enum whisper_sampling_strategy strategy); @@ -663,7 +664,10 @@ extern "C" { WHISPER_API float whisper_full_get_token_p (struct whisper_context * ctx, int i_segment, int i_token); WHISPER_API float whisper_full_get_token_p_from_state(struct whisper_state * state, int i_segment, int i_token); + // // Voice Activity Detection (VAD) + // + struct whisper_vad_context; struct whisper_vad_state; @@ -676,27 +680,30 @@ extern "C" { int window_size_samples; // Number of audio samples in each probability window. float samples_overlap; // Overlap in seconds when copying audio samples from speech segment. }; - WHISPER_API struct whisper_vad_params whisper_vad_default_params(void); - WHISPER_API struct whisper_vad_params whisper_vad_params_from(struct whisper_full_params wparams); + + WHISPER_API struct whisper_vad_params whisper_vad_default_params(void); + WHISPER_API struct whisper_vad_params whisper_vad_params_from(struct whisper_full_params wparams); struct whisper_vad_context_params { int n_threads; // The number of threads to use for processing. bool use_gpu; int gpu_device; // CUDA device }; + WHISPER_API struct whisper_vad_context_params whisper_vad_default_context_params(void); WHISPER_API struct whisper_vad_state * whisper_vad_init_state(struct whisper_vad_context * ctx); WHISPER_API struct whisper_vad_context * whisper_vad_init_from_file_with_params( - const char * path_model, - const struct whisper_vad_context_params params); + const char * path_model, + const struct whisper_vad_context_params params); WHISPER_API struct whisper_vad_context * whisper_vad_init_from_file_with_params_no_state( - const char * path_model, - const struct whisper_vad_context_params params); + const char * path_model, + const struct whisper_vad_context_params params); - WHISPER_API struct whisper_vad_context * whisper_vad_init_with_params_no_state(struct whisper_model_loader * loader, + WHISPER_API struct whisper_vad_context * whisper_vad_init_with_params_no_state( + struct whisper_model_loader * loader, struct whisper_vad_context_params params); struct whisper_vad_speech { @@ -706,7 +713,8 @@ extern "C" { WHISPER_API struct whisper_vad_speech whisper_vad_detect_speech( struct whisper_vad_context * vctx, - const float * samples, int n_samples); + const float * samples, + int n_samples); struct whisper_vad_segment { float start; // Start time in seconds @@ -721,7 +729,8 @@ extern "C" { WHISPER_API struct whisper_vad_timestamps whisper_vad_detect_speech_timestamps( struct whisper_vad_context * vctx, struct whisper_vad_params params, - const float * samples, int n_samples); + const float * samples, + int n_samples); WHISPER_API struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( struct whisper_vad_context * vctx, @@ -731,7 +740,6 @@ extern "C" { WHISPER_API void whisper_vad_free (struct whisper_vad_context * ctx); WHISPER_API void whisper_vad_free_state (struct whisper_vad_state * state); WHISPER_API void whisper_vad_free_params (struct whisper_vad_params * params); - WHISPER_API void whisper_vad_free_speech (struct whisper_vad_speech * speech); WHISPER_API void whisper_vad_free_timestamps(struct whisper_vad_timestamps * timestamps); //////////////////////////////////////////////////////////////////////////// diff --git a/src/whisper.cpp b/src/whisper.cpp index 06473c4e1ec..8891aecdea7 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -5206,9 +5206,10 @@ struct whisper_vad_speech whisper_vad_detect_speech( return speech; } -struct whisper_vad_timestamps whisper_vad_timestamps_from_probs(whisper_vad_context * vctx, - whisper_vad_params params, - struct whisper_vad_speech * speech) { +struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( + whisper_vad_context * vctx, + whisper_vad_params params, + whisper_vad_speech * speech) { GGML_UNUSED(vctx); WHISPER_LOG_INFO("%s: detecting speech timestamps using %d probabilities\n", __func__, speech->n_probs); int n_probs = speech->n_probs; @@ -5557,11 +5558,6 @@ void whisper_vad_free_params(whisper_vad_params * params) { } } -void whisper_vad_free_speech(whisper_vad_speech * speech) { - speech->probs = nullptr; - speech->n_probs = 0; -} - void whisper_vad_free_timestamps(whisper_vad_timestamps * timestamps) { delete timestamps->segments; timestamps->segments = nullptr; diff --git a/tests/test-vad.cpp b/tests/test-vad.cpp index 0061dea2b58..f90f686b685 100644 --- a/tests/test-vad.cpp +++ b/tests/test-vad.cpp @@ -80,7 +80,6 @@ int main() { // Test speech timestamps (uses speech probabilities from above) struct whisper_vad_timestamps timestamps = test_detect_timestamps(vctx, params, &speech); - whisper_vad_free_speech(&speech); whisper_vad_free_timestamps(×tamps); whisper_vad_free(vctx); From f42e6e47cdeea88aeafb1cf8f472e055d6dc334a Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Sat, 10 May 2025 11:14:38 +0300 Subject: [PATCH 30/49] vad : refactor whiser_vad_params API --- examples/cli/cli.cpp | 21 ++++++++++----------- include/whisper.h | 33 ++++++++++++++------------------- src/whisper.cpp | 38 +++++++------------------------------- tests/test-vad-full.cpp | 17 +++++++++-------- tests/test-vad.cpp | 2 +- 5 files changed, 41 insertions(+), 70 deletions(-) diff --git a/examples/cli/cli.cpp b/examples/cli/cli.cpp index 27ce67898cb..a26f8865bc9 100644 --- a/examples/cli/cli.cpp +++ b/examples/cli/cli.cpp @@ -1166,19 +1166,18 @@ int main(int argc, char ** argv) { wparams.suppress_nst = params.suppress_nst; - wparams.vad = params.vad; - wparams.vad_model_path = params.vad_model.c_str(); - wparams.vad_threshold = params.vad_threshold; - wparams.vad_min_speech_duration_ms = params.vad_min_speech_duration_ms; - wparams.vad_min_silence_duration_ms = params.vad_min_silence_duration_ms; - wparams.vad_max_speech_duration_s = params.vad_max_speech_duration_s; - wparams.vad_speech_pad_ms = params.vad_speech_pad_ms; - wparams.vad_window_size_samples = params.vad_window_size_samples; - wparams.vad_samples_overlap = params.vad_samples_overlap; - - whisper_print_user_data user_data = { ¶ms, &pcmf32s, 0 }; + wparams.vad = params.vad; + wparams.vad_model_path = params.vad_model.c_str(); + wparams.vad_params.threshold = params.vad_threshold; + wparams.vad_params.min_speech_duration_ms = params.vad_min_speech_duration_ms; + wparams.vad_params.min_silence_duration_ms = params.vad_min_silence_duration_ms; + wparams.vad_params.max_speech_duration_s = params.vad_max_speech_duration_s; + wparams.vad_params.speech_pad_ms = params.vad_speech_pad_ms; + wparams.vad_params.window_size_samples = params.vad_window_size_samples; + wparams.vad_params.samples_overlap = params.vad_samples_overlap; + whisper_print_user_data user_data = { ¶ms, &pcmf32s, 0 }; const auto & grammar_parsed = params.grammar_parsed; auto grammar_rules = grammar_parsed.c_rules(); diff --git a/include/whisper.h b/include/whisper.h index cf1761c53cf..536cf1e222d 100644 --- a/include/whisper.h +++ b/include/whisper.h @@ -189,6 +189,16 @@ extern "C" { uint32_t value; // Unicode code point or rule ID } whisper_grammar_element; + typedef struct whisper_vad_params { + float threshold; // Probability threshold to consider as speech. + int min_speech_duration_ms; // Min duration for a valid speech segment. + int min_silence_duration_ms; // Min silence duration to consider speech as ended. + float max_speech_duration_s; // Max duration of a speech segment before forcing a new segment. + int speech_pad_ms; // Padding added before and after speech segments. + int window_size_samples; // Number of audio samples in each probability window. + float samples_overlap; // Overlap in seconds when copying audio samples from speech segment. + } whisper_vad_params; + // Various functions for loading a ggml whisper model. // Allocate (almost) all memory needed for the model. // Return NULL on failure @@ -574,13 +584,8 @@ extern "C" { // Voice Activity Detection (VAD) params bool vad; // Enable VAD const char * vad_model_path; // Path to VAD model - float vad_threshold; // Probability threshold to consider as speech. - int vad_min_speech_duration_ms; // Min duration for a valid speech segment. - int vad_min_silence_duration_ms; // Min silence duration to consider speech as ended. - float vad_max_speech_duration_s; // Max duration of a speech segment before forcing a break. - int vad_speech_pad_ms; // Padding added before and after speech segments. - int vad_window_size_samples; // Number of audio samples in each probability window. - float vad_samples_overlap; // Overlap in seconds when copying audio samples from speech segment. + + whisper_vad_params vad_params; }; // NOTE: this function allocates memory, and it is the responsibility of the caller to free the pointer - see whisper_free_context_params & whisper_free_params() @@ -671,18 +676,7 @@ extern "C" { struct whisper_vad_context; struct whisper_vad_state; - struct whisper_vad_params { - float threshold; // Probability threshold to consider as speech. - int min_speech_duration_ms; // Min duration for a valid speech segment. - int min_silence_duration_ms; // Min silence duration to consider speech as ended. - float max_speech_duration_s; // Max duration of a speech segment before forcing a new segment. - int speech_pad_ms; // Padding added before and after speech segments. - int window_size_samples; // Number of audio samples in each probability window. - float samples_overlap; // Overlap in seconds when copying audio samples from speech segment. - }; - WHISPER_API struct whisper_vad_params whisper_vad_default_params(void); - WHISPER_API struct whisper_vad_params whisper_vad_params_from(struct whisper_full_params wparams); struct whisper_vad_context_params { int n_threads; // The number of threads to use for processing. @@ -706,6 +700,7 @@ extern "C" { struct whisper_model_loader * loader, struct whisper_vad_context_params params); + // TODO: rename to whisper_vad_probs struct whisper_vad_speech { int n_probs; float * probs; @@ -726,6 +721,7 @@ extern "C" { struct whisper_vad_segment * segments; }; + // TODO: rename to whisper_vad_timestamps_from_samples WHISPER_API struct whisper_vad_timestamps whisper_vad_detect_speech_timestamps( struct whisper_vad_context * vctx, struct whisper_vad_params params, @@ -739,7 +735,6 @@ extern "C" { WHISPER_API void whisper_vad_free (struct whisper_vad_context * ctx); WHISPER_API void whisper_vad_free_state (struct whisper_vad_state * state); - WHISPER_API void whisper_vad_free_params (struct whisper_vad_params * params); WHISPER_API void whisper_vad_free_timestamps(struct whisper_vad_timestamps * timestamps); //////////////////////////////////////////////////////////////////////////// diff --git a/src/whisper.cpp b/src/whisper.cpp index 8891aecdea7..440f9e6defb 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4449,7 +4449,7 @@ struct whisper_vad_context { struct whisper_vad_context_params whisper_vad_default_context_params(void) { whisper_vad_context_params result = { /*.n_thread = */ 4, - /*.use_gpu = */ true, + /*.use_gpu = */ false, /*.gpu_device = */ 0, }; return result; @@ -4468,19 +4468,6 @@ struct whisper_vad_params whisper_vad_default_params(void) { return result; } -struct whisper_vad_params whisper_vad_params_from(struct whisper_full_params wparams) { - whisper_vad_params result = { - /* threshold = */ wparams.vad_threshold, - /* min_speech_duration_ms = */ wparams.vad_min_speech_duration_ms, - /* min_silence_duration_ms = */ wparams.vad_min_silence_duration_ms, - /* max_speech_duration_s = */ wparams.vad_max_speech_duration_s, - /* speech_pad_ms = */ wparams.vad_speech_pad_ms, - /* window_size_samples = */ wparams.vad_window_size_samples, - /* samples_overlap = */ wparams.vad_samples_overlap, - }; - return result; -} - static bool weight_buft_supported(const whisper_vad_hparams & hparams, ggml_tensor * w, ggml_op op, ggml_backend_buffer_type_t buft, ggml_backend_dev_t dev) { bool op_supported = true; @@ -5552,12 +5539,6 @@ void whisper_vad_free_state(whisper_vad_state * state) { } } -void whisper_vad_free_params(whisper_vad_params * params) { - if (params) { - delete params; - } -} - void whisper_vad_free_timestamps(whisper_vad_timestamps * timestamps) { delete timestamps->segments; timestamps->segments = nullptr; @@ -6001,7 +5982,6 @@ struct whisper_full_params * whisper_full_default_params_by_ref(enum whisper_sam } struct whisper_full_params whisper_full_default_params(enum whisper_sampling_strategy strategy) { - auto vparams = whisper_vad_default_params(); struct whisper_full_params result = { /*.strategy =*/ strategy, @@ -6084,13 +6064,8 @@ struct whisper_full_params whisper_full_default_params(enum whisper_sampling_str /*.vad =*/ false, /*.vad_model_path =*/ nullptr, - /* vad_threshold =*/ vparams.threshold, - /* vad_min_speech_duration_ms =*/ vparams.min_speech_duration_ms, - /* vad_min_silence_duration_ms =*/ vparams.min_silence_duration_ms, - /* vad_max_speech_duration_s =*/ vparams.max_speech_duration_s, - /* vad_speech_pad_ms =*/ vparams.speech_pad_ms, - /* vad_window_size_samples =*/ vparams.window_size_samples, - /* vad_samples_overlap =*/ vparams.samples_overlap, + + /* vad_params =*/ whisper_vad_default_params(), }; switch (strategy) { @@ -6725,8 +6700,9 @@ static bool whisper_vad( return false; } - struct whisper_vad_params vad_params = whisper_vad_params_from(params); - struct whisper_vad_timestamps timestamps = whisper_vad_detect_speech_timestamps(vctx, vad_params, samples, n_samples); + const whisper_vad_params & vad_params = params.vad_params; + + whisper_vad_timestamps timestamps = whisper_vad_detect_speech_timestamps(vctx, vad_params, samples, n_samples); if (timestamps.n_segments > 0) { state->has_vad_segments = true; @@ -6734,7 +6710,7 @@ static bool whisper_vad( ctx->state->vad_segments.reserve(timestamps.n_segments); WHISPER_LOG_INFO("%s: detected %d speech segments\n", __func__, timestamps.n_segments); - float overlap_seconds = params.vad_samples_overlap; + float overlap_seconds = vad_params.samples_overlap; int overlap_samples = overlap_seconds * WHISPER_SAMPLE_RATE; for (int i = 0; i < timestamps.n_segments; i++) { diff --git a/tests/test-vad-full.cpp b/tests/test-vad-full.cpp index 3aed0784553..d01d387e827 100644 --- a/tests/test-vad-full.cpp +++ b/tests/test-vad-full.cpp @@ -28,14 +28,15 @@ int main() { cparams); struct whisper_full_params wparams = whisper_full_default_params(WHISPER_SAMPLING_BEAM_SEARCH); - wparams.vad = true; - wparams.vad_model_path = vad_model_path.c_str(); - wparams.vad_threshold = 0.5f; - wparams.vad_min_speech_duration_ms = 250; - wparams.vad_min_silence_duration_ms = 100; - wparams.vad_max_speech_duration_s = FLT_MAX; - wparams.vad_speech_pad_ms = 30; - wparams.vad_window_size_samples = 512; + wparams.vad = true; + wparams.vad_model_path = vad_model_path.c_str(); + + wparams.vad_params.threshold = 0.5f; + wparams.vad_params.min_speech_duration_ms = 250; + wparams.vad_params.min_silence_duration_ms = 100; + wparams.vad_params.max_speech_duration_s = FLT_MAX; + wparams.vad_params.speech_pad_ms = 30; + wparams.vad_params.window_size_samples = 512; assert(whisper_full_parallel(wctx, wparams, pcmf32.data(), pcmf32.size(), 1) == 0); diff --git a/tests/test-vad.cpp b/tests/test-vad.cpp index f90f686b685..776841ecd5b 100644 --- a/tests/test-vad.cpp +++ b/tests/test-vad.cpp @@ -19,7 +19,7 @@ void assert_default_params(const struct whisper_vad_params & params) { void assert_default_context_params(const struct whisper_vad_context_params & params) { assert(params.n_threads == 4); - assert(params.use_gpu == true); + assert(params.use_gpu == false); assert(params.gpu_device == 0); } From 4ff858bae78ae5402ee6cd26c5392a5ffa22d3bd Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Sat, 10 May 2025 11:21:36 +0300 Subject: [PATCH 31/49] vad : simplify whisper_vad_timestamps_from_probs() --- include/whisper.h | 1 - src/whisper.cpp | 33 +++++++++++++++++---------------- tests/test-vad.cpp | 2 +- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/include/whisper.h b/include/whisper.h index 536cf1e222d..fd0e68c8621 100644 --- a/include/whisper.h +++ b/include/whisper.h @@ -729,7 +729,6 @@ extern "C" { int n_samples); WHISPER_API struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( - struct whisper_vad_context * vctx, struct whisper_vad_params params, struct whisper_vad_speech * probs); diff --git a/src/whisper.cpp b/src/whisper.cpp index 440f9e6defb..70c8be0e56e 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -5115,6 +5115,7 @@ struct whisper_vad_speech whisper_vad_detect_speech( if (n_samples % vctx->n_window != 0) { n_chunks += 1; // Add one more chunk for remaining samples. } + WHISPER_LOG_INFO("%s: detecting speech in %d samples\n", __func__, n_samples); WHISPER_LOG_INFO("%s: n_chunks: %d\n", __func__, n_chunks); @@ -5194,11 +5195,10 @@ struct whisper_vad_speech whisper_vad_detect_speech( } struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( - whisper_vad_context * vctx, - whisper_vad_params params, - whisper_vad_speech * speech) { - GGML_UNUSED(vctx); + whisper_vad_params params, + whisper_vad_speech * speech) { WHISPER_LOG_INFO("%s: detecting speech timestamps using %d probabilities\n", __func__, speech->n_probs); + int n_probs = speech->n_probs; float * probs = speech->probs; float threshold = params.threshold; @@ -5258,13 +5258,13 @@ struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( speeches[i].end = 0; } - bool is_speech_segment = false; - int speech_count = 0; - int temp_end = 0; - int prev_end = 0; - int next_start = 0; - int curr_speech_start = 0; - bool has_curr_speech = false; + bool is_speech_segment = false; + int speech_count = 0; + int temp_end = 0; + int prev_end = 0; + int next_start = 0; + int curr_speech_start = 0; + bool has_curr_speech = false; auto resize_speeches = [&]() -> bool { if (speech_count >= speech_capacity) { @@ -5502,13 +5502,14 @@ struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( return timestamps; } -struct whisper_vad_timestamps whisper_vad_detect_speech_timestamps(whisper_vad_context * vctx, - whisper_vad_params params, - const float * pcmf32, - int n_samples) { +struct whisper_vad_timestamps whisper_vad_detect_speech_timestamps( + whisper_vad_context * vctx, + whisper_vad_params params, + const float * pcmf32, + int n_samples) { WHISPER_LOG_INFO("%s: detecting speech timestamps in %d samples\n", __func__, n_samples); auto probs = whisper_vad_detect_speech(vctx, pcmf32, n_samples); - return whisper_vad_timestamps_from_probs(vctx, params, &probs); + return whisper_vad_timestamps_from_probs(params, &probs); } void whisper_vad_free(whisper_vad_context * ctx) { diff --git a/tests/test-vad.cpp b/tests/test-vad.cpp index 776841ecd5b..9ffecdca24c 100644 --- a/tests/test-vad.cpp +++ b/tests/test-vad.cpp @@ -39,7 +39,7 @@ struct whisper_vad_timestamps test_detect_timestamps( struct whisper_vad_context * vctx, struct whisper_vad_params params, struct whisper_vad_speech * speech) { - struct whisper_vad_timestamps timestamps = whisper_vad_timestamps_from_probs(vctx, params, speech); + struct whisper_vad_timestamps timestamps = whisper_vad_timestamps_from_probs(params, speech); assert(timestamps.n_segments == 5); assert(timestamps.segments != nullptr); From 13a751774dd154d40fddc8c9e5e724f782b07461 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Sat, 10 May 2025 11:32:36 +0300 Subject: [PATCH 32/49] vad : refactor whisper_vad_timestamps_from_probs to use C++ --- include/whisper.h | 1 + src/whisper.cpp | 125 ++++++++++------------------------------------ 2 files changed, 26 insertions(+), 100 deletions(-) diff --git a/include/whisper.h b/include/whisper.h index fd0e68c8621..4a3dabce24e 100644 --- a/include/whisper.h +++ b/include/whisper.h @@ -716,6 +716,7 @@ extern "C" { float end; // End time in seconds }; + // TODO: rework into a oblique struct and access segments through API functions struct whisper_vad_timestamps { int n_segments; struct whisper_vad_segment * segments; diff --git a/src/whisper.cpp b/src/whisper.cpp index 70c8be0e56e..718d0c6427f 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -5240,53 +5240,21 @@ struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( neg_threshold = 0.01f; } - typedef struct { + struct speech_segment_t { int start; int end; - } speech_segment_t; + }; - // Allocate initial memory for speech segments. - int speech_capacity = 16; - speech_segment_t * speeches = (speech_segment_t*)malloc(speech_capacity * sizeof(speech_segment_t)); - if (!speeches) { - WHISPER_LOG_ERROR("%s: failed to allocate memory for temporary segments\n", __func__); - return { 0, nullptr }; - } - // Initialize all segments - for (int i = 0; i < speech_capacity; i++) { - speeches[i].start = 0; - speeches[i].end = 0; - } + std::vector speeches; + speeches.reserve(256); bool is_speech_segment = false; - int speech_count = 0; int temp_end = 0; int prev_end = 0; int next_start = 0; int curr_speech_start = 0; bool has_curr_speech = false; - auto resize_speeches = [&]() -> bool { - if (speech_count >= speech_capacity) { - speech_capacity *= 2; - speech_segment_t* new_speeches = (speech_segment_t*)realloc(speeches, - speech_capacity * sizeof(speech_segment_t)); - if (!new_speeches) { - WHISPER_LOG_ERROR("%s: failed to reallocate memory for speech segments\n", __func__); - free(speeches); - return false; - } - speeches = new_speeches; - - // Initialize new memory - for (int j = speech_count; j < speech_capacity; j++) { - speeches[j].start = 0; - speeches[j].end = 0; - } - } - return true; - }; - for (int i = 0; i < n_probs; i++) { float curr_prob = probs[i]; int curr_sample = window_size_samples * i; @@ -5310,15 +5278,7 @@ struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( // Handle maximum speech duration if (is_speech_segment && (curr_sample - curr_speech_start) > max_speech_samples) { if (prev_end) { - // Check if we need to increase capacity - if (!resize_speeches()) { - return { 0, nullptr }; - } - - // Add segment ending at previously detected silence - speeches[speech_count].start = curr_speech_start; - speeches[speech_count].end = prev_end; - speech_count++; + speeches.push_back({ curr_speech_start, prev_end }); has_curr_speech = true; if (next_start < prev_end) { // Previously reached silence and is still not speech @@ -5329,14 +5289,7 @@ struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( } prev_end = next_start = temp_end = 0; } else { - // No silence detected, force end the segment - if (!resize_speeches()) { - return { 0, nullptr }; - } - - speeches[speech_count].start = curr_speech_start; - speeches[speech_count].end = curr_sample; - speech_count++; + speeches.push_back({ curr_speech_start, curr_sample }); prev_end = next_start = temp_end = 0; is_speech_segment = false; @@ -5362,14 +5315,7 @@ struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( } else { // End the segment if it's long enough if ((temp_end - curr_speech_start) > min_speech_samples) { - // Check if we need to increase capacity - if (!resize_speeches()) { - return { 0, nullptr }; - } - - speeches[speech_count].start = curr_speech_start; - speeches[speech_count].end = temp_end; - speech_count++; + speeches.push_back({ curr_speech_start, temp_end }); } prev_end = next_start = temp_end = 0; @@ -5382,20 +5328,13 @@ struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( // Handle the case if we're still in a speech segment at the end if (has_curr_speech && (audio_length_samples - curr_speech_start) > min_speech_samples) { - // Check if we need to increase capacity - if (!resize_speeches()) { - return { 0, nullptr }; - } - - speeches[speech_count].start = curr_speech_start; - speeches[speech_count].end = audio_length_samples; - speech_count++; + speeches.push_back({ curr_speech_start, audio_length_samples }); } // Merge adjacent segments with small gaps in between (post-processing) - if (speech_count > 1) { + if (speeches.size() > 1) { int merged_count = 0; - for (int i = 0; i < speech_count - 1; i++) { + for (int i = 0; i < (int) speeches.size() - 1; i++) { // Define maximum gap allowed for merging (e.g., 200ms converted to samples) int max_merge_gap_samples = sample_rate * 200 / 1000; @@ -5403,62 +5342,50 @@ struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( if (speeches[i+1].start - speeches[i].end < max_merge_gap_samples) { // Merge by extending current segment to the end of next segment speeches[i].end = speeches[i+1].end; + speeches.erase(speeches.begin() + i + 1); - // Shift all subsequent segments back by one - for (int j = i+1; j < speech_count - 1; j++) { - speeches[j] = speeches[j+1]; - } - - // Reduce count and check this position again - speech_count--; i--; merged_count++; } } WHISPER_LOG_INFO("%s: Merged %d adjacent segments, now have %d segments\n", - __func__, merged_count, speech_count); + __func__, merged_count, (int) speeches.size()); } // Double-check for minimum speech duration - for (int i = 0; i < speech_count; i++) { + for (int i = 0; i < (int) speeches.size(); i++) { if (speeches[i].end - speeches[i].start < min_speech_samples) { WHISPER_LOG_INFO("%s: Removing segment %d (too short: %d samples)\n", __func__, i, speeches[i].end - speeches[i].start); - // Remove this segment by shifting all subsequent segments - for (int j = i; j < speech_count - 1; j++) { - speeches[j] = speeches[j+1]; - } - - // Reduce count and recheck current position - speech_count--; + speeches.erase(speeches.begin() + i); i--; } } - WHISPER_LOG_INFO("%s: Final speech segments after filtering: %d\n", __func__, speech_count); + WHISPER_LOG_INFO("%s: Final speech segments after filtering: %d\n", __func__, (int) speeches.size()); // Allocate final segments struct whisper_vad_segment * segments = NULL; - if (speech_count > 0) { - segments = (struct whisper_vad_segment*) malloc(speech_count * sizeof(struct whisper_vad_segment)); + if (speeches.size() > 0) { + segments = (struct whisper_vad_segment *) malloc(speeches.size() * sizeof(struct whisper_vad_segment)); if (!segments) { WHISPER_LOG_ERROR("%s: failed to allocate memory for final segments\n", __func__); - free(speeches); return { 0, nullptr }; } } // Apply padding to segments and copy to final segments - for (int i = 0; i < speech_count; i++) { + for (int i = 0; i < (int) speeches.size(); i++) { // Apply padding to the start of the first segment if (i == 0) { - speeches[i].start = (speeches[i].start > speech_pad_samples) ? - (speeches[i].start - speech_pad_samples) : 0; + speeches[i].start = + (speeches[i].start > speech_pad_samples) ? + (speeches[i].start - speech_pad_samples) : 0; } // Handle spacing between segments - if (i < speech_count - 1) { + if (i < (int) speeches.size() - 1) { int silence_duration = speeches[i+1].start - speeches[i].end; if (silence_duration < 2 * speech_pad_samples) { @@ -5491,11 +5418,8 @@ struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( __func__, i, segments[i].start, segments[i].end, segments[i].end - segments[i].start); } - // Free temporary segments - free(speeches); - struct whisper_vad_timestamps timestamps = { - /* n_segments = */ speech_count, + /* n_segments = */ (int) speeches.size(), /* segments = */ segments, }; @@ -5541,7 +5465,8 @@ void whisper_vad_free_state(whisper_vad_state * state) { } void whisper_vad_free_timestamps(whisper_vad_timestamps * timestamps) { - delete timestamps->segments; + free(timestamps->segments); + timestamps->segments = nullptr; timestamps->n_segments = 0; } From 3bcc44c268f1a161cc85839307a0a519dbc64eb3 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sat, 10 May 2025 11:40:19 +0200 Subject: [PATCH 33/49] vad : make whisper_vad_timestamps oblique in API --- include/whisper.h | 24 +++++++-------- src/whisper.cpp | 76 ++++++++++++++++++++++++++++------------------ tests/test-vad.cpp | 18 +++++------ 3 files changed, 68 insertions(+), 50 deletions(-) diff --git a/include/whisper.h b/include/whisper.h index 4a3dabce24e..27ce7a62cca 100644 --- a/include/whisper.h +++ b/include/whisper.h @@ -716,26 +716,26 @@ extern "C" { float end; // End time in seconds }; - // TODO: rework into a oblique struct and access segments through API functions - struct whisper_vad_timestamps { - int n_segments; - struct whisper_vad_segment * segments; - }; + struct whisper_vad_timestamps; + + WHISPER_API struct whisper_vad_timestamps * whisper_vad_timestamps_from_probs( + struct whisper_vad_params params, + struct whisper_vad_speech * probs); - // TODO: rename to whisper_vad_timestamps_from_samples - WHISPER_API struct whisper_vad_timestamps whisper_vad_detect_speech_timestamps( + WHISPER_API struct whisper_vad_timestamps * whisper_vad_timestamps_from_samples( struct whisper_vad_context * vctx, struct whisper_vad_params params, const float * samples, int n_samples); - WHISPER_API struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( - struct whisper_vad_params params, - struct whisper_vad_speech * probs); + WHISPER_API int whisper_vad_timestamps_n_segments(struct whisper_vad_timestamps * timestamps); + + WHISPER_API float whisper_vad_timestamps_get_segment_t0(struct whisper_vad_timestamps * timestamps, int i_segment); + WHISPER_API float whisper_vad_timestamps_get_segment_t1(struct whisper_vad_timestamps * timestamps, int i_segment); - WHISPER_API void whisper_vad_free (struct whisper_vad_context * ctx); - WHISPER_API void whisper_vad_free_state (struct whisper_vad_state * state); WHISPER_API void whisper_vad_free_timestamps(struct whisper_vad_timestamps * timestamps); + WHISPER_API void whisper_vad_free_state (struct whisper_vad_state * state); + WHISPER_API void whisper_vad_free (struct whisper_vad_context * ctx); //////////////////////////////////////////////////////////////////////////// diff --git a/src/whisper.cpp b/src/whisper.cpp index 718d0c6427f..3074974614f 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4430,6 +4430,11 @@ struct whisper_vad_state { std::vector probs; }; +struct whisper_vad_timestamps { + int n_segments; + struct whisper_vad_segment * segments; +}; + struct whisper_vad_context { int64_t t_load_us = 0; int64_t t_start_us = 0; @@ -5194,7 +5199,19 @@ struct whisper_vad_speech whisper_vad_detect_speech( return speech; } -struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( +int whisper_vad_timestamps_n_segments(struct whisper_vad_timestamps * timestamps) { + return timestamps->n_segments; +} + +float whisper_vad_timestamps_get_segment_t0(struct whisper_vad_timestamps * timestamps, int i_segment) { + return timestamps->segments[i_segment].start; +} + +float whisper_vad_timestamps_get_segment_t1(struct whisper_vad_timestamps * timestamps, int i_segment) { + return timestamps->segments[i_segment].end; +} + +struct whisper_vad_timestamps * whisper_vad_timestamps_from_probs( whisper_vad_params params, whisper_vad_speech * speech) { WHISPER_LOG_INFO("%s: detecting speech timestamps using %d probabilities\n", __func__, speech->n_probs); @@ -5371,7 +5388,7 @@ struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( segments = (struct whisper_vad_segment *) malloc(speeches.size() * sizeof(struct whisper_vad_segment)); if (!segments) { WHISPER_LOG_ERROR("%s: failed to allocate memory for final segments\n", __func__); - return { 0, nullptr }; + return nullptr; } } @@ -5418,15 +5435,16 @@ struct whisper_vad_timestamps whisper_vad_timestamps_from_probs( __func__, i, segments[i].start, segments[i].end, segments[i].end - segments[i].start); } - struct whisper_vad_timestamps timestamps = { - /* n_segments = */ (int) speeches.size(), - /* segments = */ segments, - }; - + whisper_vad_timestamps * timestamps = (whisper_vad_timestamps *) malloc(sizeof(whisper_vad_timestamps)); + if (timestamps == NULL) { + return nullptr; + } + timestamps->n_segments = (int) speeches.size(); + timestamps->segments = segments; return timestamps; } -struct whisper_vad_timestamps whisper_vad_detect_speech_timestamps( +struct whisper_vad_timestamps * whisper_vad_timestamps_from_samples( whisper_vad_context * vctx, whisper_vad_params params, const float * pcmf32, @@ -6628,36 +6646,36 @@ static bool whisper_vad( const whisper_vad_params & vad_params = params.vad_params; - whisper_vad_timestamps timestamps = whisper_vad_detect_speech_timestamps(vctx, vad_params, samples, n_samples); + whisper_vad_timestamps * timestamps = whisper_vad_timestamps_from_samples(vctx, vad_params, samples, n_samples); - if (timestamps.n_segments > 0) { + if (timestamps->n_segments > 0) { state->has_vad_segments = true; ctx->state->vad_segments.clear(); - ctx->state->vad_segments.reserve(timestamps.n_segments); + ctx->state->vad_segments.reserve(timestamps->n_segments); - WHISPER_LOG_INFO("%s: detected %d speech segments\n", __func__, timestamps.n_segments); + WHISPER_LOG_INFO("%s: detected %d speech segments\n", __func__, timestamps->n_segments); float overlap_seconds = vad_params.samples_overlap; int overlap_samples = overlap_seconds * WHISPER_SAMPLE_RATE; - for (int i = 0; i < timestamps.n_segments; i++) { - int segment_start_samples = timestamps.segments[i].start * WHISPER_SAMPLE_RATE; - int segment_end_samples = timestamps.segments[i].end * WHISPER_SAMPLE_RATE; + for (int i = 0; i < timestamps->n_segments; i++) { + int segment_start_samples = timestamps->segments[i].start * WHISPER_SAMPLE_RATE; + int segment_end_samples = timestamps->segments[i].end * WHISPER_SAMPLE_RATE; - if (i < timestamps.n_segments - 1) { + if (i < timestamps->n_segments - 1) { segment_end_samples += overlap_samples; } segment_end_samples = std::min(segment_end_samples, n_samples - 1); filtered_n_samples += (segment_end_samples - segment_start_samples); WHISPER_LOG_INFO("%s: Including segment %d: %.2f - %.2f (duration: %.2f)\n", - __func__, i, timestamps.segments[i].start, - timestamps.segments[i].end + (i < timestamps.n_segments - 1 ? overlap_seconds : 0), - (timestamps.segments[i].end - timestamps.segments[i].start) + - (i < timestamps.n_segments - 1 ? overlap_seconds : 0)); + __func__, i, timestamps->segments[i].start, + timestamps->segments[i].end + (i < timestamps->n_segments - 1 ? overlap_seconds : 0), + (timestamps->segments[i].end - timestamps->segments[i].start) + + (i < timestamps->n_segments - 1 ? overlap_seconds : 0)); } int silence_samples = 0.1 * WHISPER_SAMPLE_RATE; - int total_silence_samples = (timestamps.n_segments > 1) ? (timestamps.n_segments - 1) * silence_samples : 0; + int total_silence_samples = (timestamps->n_segments > 1) ? (timestamps->n_segments - 1) * silence_samples : 0; int total_samples_needed = filtered_n_samples + total_silence_samples; WHISPER_LOG_INFO("%s: total duration of speech segments: %.2f seconds\n", @@ -6667,17 +6685,17 @@ static bool whisper_vad( filtered_samples.resize(total_samples_needed); } catch (const std::bad_alloc & /* e */) { WHISPER_LOG_ERROR("%s: failed to allocate memory for filtered samples\n", __func__); - whisper_vad_free_timestamps(×tamps); + whisper_vad_free_timestamps(timestamps); whisper_vad_free(vctx); return false; } int offset = 0; - for (int i = 0; i < timestamps.n_segments; i++) { - int segment_start_samples = timestamps.segments[i].start * WHISPER_SAMPLE_RATE; - int segment_end_samples = timestamps.segments[i].end * WHISPER_SAMPLE_RATE; + for (int i = 0; i < timestamps->n_segments; i++) { + int segment_start_samples = timestamps->segments[i].start * WHISPER_SAMPLE_RATE; + int segment_end_samples = timestamps->segments[i].end * WHISPER_SAMPLE_RATE; - if (i < timestamps.n_segments - 1) { + if (i < timestamps->n_segments - 1) { segment_end_samples += overlap_samples; } @@ -6688,8 +6706,8 @@ static bool whisper_vad( if (segment_length > 0) { whisper_state::vad_segment_info segment; - segment.orig_start = timestamps.segments[i].start; - segment.orig_end = timestamps.segments[i].end; + segment.orig_start = timestamps->segments[i].start; + segment.orig_end = timestamps->segments[i].end; segment.vad_start = offset / (float)WHISPER_SAMPLE_RATE; segment.vad_end = (offset + segment_length) / (float)WHISPER_SAMPLE_RATE; @@ -6703,7 +6721,7 @@ static bool whisper_vad( offset += segment_length; // Add silence after this segment (except after the last segment) - if (i < timestamps.n_segments - 1) { + if (i < timestamps->n_segments - 1) { // Fill with zeros (silence) memset(filtered_samples.data() + offset, 0, silence_samples * sizeof(float)); offset += silence_samples; diff --git a/tests/test-vad.cpp b/tests/test-vad.cpp index 9ffecdca24c..c002615800d 100644 --- a/tests/test-vad.cpp +++ b/tests/test-vad.cpp @@ -35,17 +35,17 @@ struct whisper_vad_speech test_detect_speech( return speech; } -struct whisper_vad_timestamps test_detect_timestamps( +struct whisper_vad_timestamps * test_detect_timestamps( struct whisper_vad_context * vctx, struct whisper_vad_params params, struct whisper_vad_speech * speech) { - struct whisper_vad_timestamps timestamps = whisper_vad_timestamps_from_probs(params, speech); - assert(timestamps.n_segments == 5); - assert(timestamps.segments != nullptr); + struct whisper_vad_timestamps * timestamps = whisper_vad_timestamps_from_probs(params, speech); + assert(whisper_vad_timestamps_n_segments(timestamps) == 5); - for (int i = 0; i < timestamps.n_segments; ++i) { - printf("VAD segment %d: start = %.2f, end = %.2f\n", - i, timestamps.segments[i].start, timestamps.segments[i].end); + for (int i = 0; i < whisper_vad_timestamps_n_segments(timestamps); ++i) { + printf("VAD segment %d: start = %.2f, end = %.2f\n", i, + whisper_vad_timestamps_get_segment_t0(timestamps, i), + whisper_vad_timestamps_get_segment_t1(timestamps, i)); } return timestamps; @@ -78,9 +78,9 @@ int main() { struct whisper_vad_speech speech = test_detect_speech(vctx, params, pcmf32.data(), pcmf32.size()); // Test speech timestamps (uses speech probabilities from above) - struct whisper_vad_timestamps timestamps = test_detect_timestamps(vctx, params, &speech); + struct whisper_vad_timestamps * timestamps = test_detect_timestamps(vctx, params, &speech); - whisper_vad_free_timestamps(×tamps); + whisper_vad_free_timestamps(timestamps); whisper_vad_free(vctx); return 0; From 5543c80c734288f3fc286f5675e38b3e426ae53b Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sat, 10 May 2025 11:48:24 +0200 Subject: [PATCH 34/49] vad : rename whisper_vad_speech to whisper_vad_probs --- include/whisper.h | 7 +++---- src/whisper.cpp | 12 ++++++------ tests/test-vad.cpp | 18 +++++++++--------- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/include/whisper.h b/include/whisper.h index 27ce7a62cca..268d5e1422a 100644 --- a/include/whisper.h +++ b/include/whisper.h @@ -700,13 +700,12 @@ extern "C" { struct whisper_model_loader * loader, struct whisper_vad_context_params params); - // TODO: rename to whisper_vad_probs - struct whisper_vad_speech { + struct whisper_vad_probs { int n_probs; float * probs; }; - WHISPER_API struct whisper_vad_speech whisper_vad_detect_speech( + WHISPER_API struct whisper_vad_probs whisper_vad_detect_speech( struct whisper_vad_context * vctx, const float * samples, int n_samples); @@ -720,7 +719,7 @@ extern "C" { WHISPER_API struct whisper_vad_timestamps * whisper_vad_timestamps_from_probs( struct whisper_vad_params params, - struct whisper_vad_speech * probs); + struct whisper_vad_probs * probs); WHISPER_API struct whisper_vad_timestamps * whisper_vad_timestamps_from_samples( struct whisper_vad_context * vctx, diff --git a/src/whisper.cpp b/src/whisper.cpp index 3074974614f..88c506f301a 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -5112,7 +5112,7 @@ struct whisper_vad_context * whisper_vad_init_with_params_no_state(struct whispe return vctx; } -struct whisper_vad_speech whisper_vad_detect_speech( +struct whisper_vad_probs whisper_vad_detect_speech( struct whisper_vad_context * vctx, const float * pcmf32, int n_samples) { @@ -5191,7 +5191,7 @@ struct whisper_vad_speech whisper_vad_detect_speech( ggml_backend_sched_reset(sched); - struct whisper_vad_speech speech = { + struct whisper_vad_probs speech = { /* n_probs = */ n_chunks, /* probs = */ vctx->state->probs.data(), }; @@ -5213,11 +5213,11 @@ float whisper_vad_timestamps_get_segment_t1(struct whisper_vad_timestamps * time struct whisper_vad_timestamps * whisper_vad_timestamps_from_probs( whisper_vad_params params, - whisper_vad_speech * speech) { - WHISPER_LOG_INFO("%s: detecting speech timestamps using %d probabilities\n", __func__, speech->n_probs); + whisper_vad_probs * vad_probs) { + WHISPER_LOG_INFO("%s: detecting speech timestamps using %d probabilities\n", __func__, vad_probs->n_probs); - int n_probs = speech->n_probs; - float * probs = speech->probs; + int n_probs = vad_probs->n_probs; + float * probs = vad_probs->probs; float threshold = params.threshold; int min_speech_duration_ms = params.min_speech_duration_ms; int min_silence_duration_ms = params.min_silence_duration_ms; diff --git a/tests/test-vad.cpp b/tests/test-vad.cpp index c002615800d..138a19c79f9 100644 --- a/tests/test-vad.cpp +++ b/tests/test-vad.cpp @@ -23,23 +23,23 @@ void assert_default_context_params(const struct whisper_vad_context_params & par assert(params.gpu_device == 0); } -struct whisper_vad_speech test_detect_speech( +struct whisper_vad_probs test_detect_speech( struct whisper_vad_context * vctx, struct whisper_vad_params params, const float * pcmf32, int n_samples) { - struct whisper_vad_speech speech = whisper_vad_detect_speech(vctx, pcmf32, n_samples); - assert(speech.n_probs == 344); - assert(speech.probs != nullptr); + struct whisper_vad_probs vad_probs = whisper_vad_detect_speech(vctx, pcmf32, n_samples); + assert(vad_probs.n_probs == 344); + assert(vad_probs.probs != nullptr); - return speech; + return vad_probs; } struct whisper_vad_timestamps * test_detect_timestamps( struct whisper_vad_context * vctx, struct whisper_vad_params params, - struct whisper_vad_speech * speech) { - struct whisper_vad_timestamps * timestamps = whisper_vad_timestamps_from_probs(params, speech); + struct whisper_vad_probs * probs) { + struct whisper_vad_timestamps * timestamps = whisper_vad_timestamps_from_probs(params, probs); assert(whisper_vad_timestamps_n_segments(timestamps) == 5); for (int i = 0; i < whisper_vad_timestamps_n_segments(timestamps); ++i) { @@ -75,10 +75,10 @@ int main() { assert_default_params(params); // Test speech probabilites - struct whisper_vad_speech speech = test_detect_speech(vctx, params, pcmf32.data(), pcmf32.size()); + struct whisper_vad_probs probs = test_detect_speech(vctx, params, pcmf32.data(), pcmf32.size()); // Test speech timestamps (uses speech probabilities from above) - struct whisper_vad_timestamps * timestamps = test_detect_timestamps(vctx, params, &speech); + struct whisper_vad_timestamps * timestamps = test_detect_timestamps(vctx, params, &probs); whisper_vad_free_timestamps(timestamps); whisper_vad_free(vctx); From 8b6f19cf6eb1fd2ecdc5727c00b958c3a002c7b8 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sat, 10 May 2025 15:58:57 +0200 Subject: [PATCH 35/49] vad : move whisper_vad_segment to whisper.cpp --- include/whisper.h | 5 ----- src/whisper.cpp | 5 +++++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/whisper.h b/include/whisper.h index 268d5e1422a..600b8a07459 100644 --- a/include/whisper.h +++ b/include/whisper.h @@ -710,11 +710,6 @@ extern "C" { const float * samples, int n_samples); - struct whisper_vad_segment { - float start; // Start time in seconds - float end; // End time in seconds - }; - struct whisper_vad_timestamps; WHISPER_API struct whisper_vad_timestamps * whisper_vad_timestamps_from_probs( diff --git a/src/whisper.cpp b/src/whisper.cpp index 88c506f301a..7ed50ce816d 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4430,6 +4430,11 @@ struct whisper_vad_state { std::vector probs; }; +struct whisper_vad_segment { + float start; // Start time in seconds + float end; // End time in seconds +}; + struct whisper_vad_timestamps { int n_segments; struct whisper_vad_segment * segments; From 7625ba162dc1a1889b8ccac2cd5f1829af1918a8 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sat, 10 May 2025 16:10:38 +0200 Subject: [PATCH 36/49] vad : make segments vector a std::vector --- src/whisper.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index 7ed50ce816d..7739154ed7d 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4437,7 +4437,7 @@ struct whisper_vad_segment { struct whisper_vad_timestamps { int n_segments; - struct whisper_vad_segment * segments; + std::vector segments; }; struct whisper_vad_context { @@ -5440,12 +5440,13 @@ struct whisper_vad_timestamps * whisper_vad_timestamps_from_probs( __func__, i, segments[i].start, segments[i].end, segments[i].end - segments[i].start); } - whisper_vad_timestamps * timestamps = (whisper_vad_timestamps *) malloc(sizeof(whisper_vad_timestamps)); + whisper_vad_timestamps * timestamps = new whisper_vad_timestamps; if (timestamps == NULL) { + WHISPER_LOG_ERROR("%s: failed to allocate memory for whisper_vad_timstamps\n", __func__); return nullptr; } timestamps->n_segments = (int) speeches.size(); - timestamps->segments = segments; + timestamps->segments.assign(segments, segments + timestamps->n_segments); return timestamps; } @@ -5488,10 +5489,9 @@ void whisper_vad_free_state(whisper_vad_state * state) { } void whisper_vad_free_timestamps(whisper_vad_timestamps * timestamps) { - free(timestamps->segments); - - timestamps->segments = nullptr; - timestamps->n_segments = 0; + if (timestamps) { + delete timestamps; + } } ////////////////////////////////// From b0b2f9b4f43df7354d01352e49c0b6aff007f9fc Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sat, 10 May 2025 16:30:40 +0200 Subject: [PATCH 37/49] vad : use std::vector for segments in whisper_vad_timestamps_from_probs --- src/whisper.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index 7739154ed7d..bfb00638794 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -5388,10 +5388,11 @@ struct whisper_vad_timestamps * whisper_vad_timestamps_from_probs( WHISPER_LOG_INFO("%s: Final speech segments after filtering: %d\n", __func__, (int) speeches.size()); // Allocate final segments - struct whisper_vad_segment * segments = NULL; + std::vector segments; if (speeches.size() > 0) { - segments = (struct whisper_vad_segment *) malloc(speeches.size() * sizeof(struct whisper_vad_segment)); - if (!segments) { + try { + segments.resize(speeches.size()); + } catch (const std::bad_alloc &) { WHISPER_LOG_ERROR("%s: failed to allocate memory for final segments\n", __func__); return nullptr; } @@ -5446,7 +5447,7 @@ struct whisper_vad_timestamps * whisper_vad_timestamps_from_probs( return nullptr; } timestamps->n_segments = (int) speeches.size(); - timestamps->segments.assign(segments, segments + timestamps->n_segments); + timestamps->segments = std::move(segments); return timestamps; } From 20fe0b35f41455b50124cb934432426ed208ba7f Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sat, 10 May 2025 16:35:15 +0200 Subject: [PATCH 38/49] vad : rename pcmf32 parameters to samples [no ci] --- src/whisper.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index bfb00638794..6a1d8e93606 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -5119,7 +5119,7 @@ struct whisper_vad_context * whisper_vad_init_with_params_no_state(struct whispe struct whisper_vad_probs whisper_vad_detect_speech( struct whisper_vad_context * vctx, - const float * pcmf32, + const float * samples, int n_samples) { int n_chunks = n_samples / vctx->n_window; if (n_samples % vctx->n_window != 0) { @@ -5161,7 +5161,7 @@ struct whisper_vad_probs whisper_vad_detect_speech( if (chunk_len < vctx->n_window) { WHISPER_LOG_INFO("%s: chunk_len: %d < n_window: %d\n", __func__, chunk_len, vctx->n_window); std::vector partial_chunk(vctx->n_window, 0.0f); - std::copy(pcmf32 + idx_start, pcmf32 + idx_end, partial_chunk.begin()); + std::copy(samples + idx_start, samples + idx_end, partial_chunk.begin()); // Copy the zero-padded chunk to the window. const int samples_to_copy_max = vctx->n_window; @@ -5173,7 +5173,7 @@ struct whisper_vad_probs whisper_vad_detect_speech( } else { // Copy current frame samples to the window. const int samples_to_copy = std::min(idx_end - idx_start, vctx->n_window); - std::copy(pcmf32 + idx_start, pcmf32 + idx_start + samples_to_copy, window.begin()); + std::copy(samples + idx_start, samples + idx_start + samples_to_copy, window.begin()); } // Set the frame tensor data with the samples. @@ -5454,10 +5454,10 @@ struct whisper_vad_timestamps * whisper_vad_timestamps_from_probs( struct whisper_vad_timestamps * whisper_vad_timestamps_from_samples( whisper_vad_context * vctx, whisper_vad_params params, - const float * pcmf32, + const float * samples, int n_samples) { WHISPER_LOG_INFO("%s: detecting speech timestamps in %d samples\n", __func__, n_samples); - auto probs = whisper_vad_detect_speech(vctx, pcmf32, n_samples); + auto probs = whisper_vad_detect_speech(vctx, samples, n_samples); return whisper_vad_timestamps_from_probs(params, &probs); } From f2123105d0316fb85442708b00a87f489230e070 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sat, 10 May 2025 17:04:43 +0200 Subject: [PATCH 39/49] vad : remove n_segments from struct whisper_vad_timestamps --- src/whisper.cpp | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/whisper.cpp b/src/whisper.cpp index 6a1d8e93606..7383f5f47ae 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4436,7 +4436,6 @@ struct whisper_vad_segment { }; struct whisper_vad_timestamps { - int n_segments; std::vector segments; }; @@ -5205,7 +5204,7 @@ struct whisper_vad_probs whisper_vad_detect_speech( } int whisper_vad_timestamps_n_segments(struct whisper_vad_timestamps * timestamps) { - return timestamps->n_segments; + return timestamps->segments.size(); } float whisper_vad_timestamps_get_segment_t0(struct whisper_vad_timestamps * timestamps, int i_segment) { @@ -5446,7 +5445,6 @@ struct whisper_vad_timestamps * whisper_vad_timestamps_from_probs( WHISPER_LOG_ERROR("%s: failed to allocate memory for whisper_vad_timstamps\n", __func__); return nullptr; } - timestamps->n_segments = (int) speeches.size(); timestamps->segments = std::move(segments); return timestamps; } @@ -6654,20 +6652,20 @@ static bool whisper_vad( whisper_vad_timestamps * timestamps = whisper_vad_timestamps_from_samples(vctx, vad_params, samples, n_samples); - if (timestamps->n_segments > 0) { + if (timestamps->segments.size() > 0) { state->has_vad_segments = true; ctx->state->vad_segments.clear(); - ctx->state->vad_segments.reserve(timestamps->n_segments); + ctx->state->vad_segments.reserve(timestamps->segments.size()); - WHISPER_LOG_INFO("%s: detected %d speech segments\n", __func__, timestamps->n_segments); + WHISPER_LOG_INFO("%s: detected %d speech segments\n", __func__, (int)timestamps->segments.size()); float overlap_seconds = vad_params.samples_overlap; int overlap_samples = overlap_seconds * WHISPER_SAMPLE_RATE; - for (int i = 0; i < timestamps->n_segments; i++) { + for (int i = 0; i < (int)timestamps->segments.size(); i++) { int segment_start_samples = timestamps->segments[i].start * WHISPER_SAMPLE_RATE; int segment_end_samples = timestamps->segments[i].end * WHISPER_SAMPLE_RATE; - if (i < timestamps->n_segments - 1) { + if (i < (int)timestamps->segments.size() - 1) { segment_end_samples += overlap_samples; } segment_end_samples = std::min(segment_end_samples, n_samples - 1); @@ -6675,13 +6673,13 @@ static bool whisper_vad( WHISPER_LOG_INFO("%s: Including segment %d: %.2f - %.2f (duration: %.2f)\n", __func__, i, timestamps->segments[i].start, - timestamps->segments[i].end + (i < timestamps->n_segments - 1 ? overlap_seconds : 0), + timestamps->segments[i].end + (i < (int)timestamps->segments.size() - 1 ? overlap_seconds : 0), (timestamps->segments[i].end - timestamps->segments[i].start) + - (i < timestamps->n_segments - 1 ? overlap_seconds : 0)); + (i < (int)timestamps->segments.size() - 1 ? overlap_seconds : 0)); } int silence_samples = 0.1 * WHISPER_SAMPLE_RATE; - int total_silence_samples = (timestamps->n_segments > 1) ? (timestamps->n_segments - 1) * silence_samples : 0; + int total_silence_samples = (timestamps->segments.size() > 1) ? (timestamps->segments.size() - 1) * silence_samples : 0; int total_samples_needed = filtered_n_samples + total_silence_samples; WHISPER_LOG_INFO("%s: total duration of speech segments: %.2f seconds\n", @@ -6697,11 +6695,11 @@ static bool whisper_vad( } int offset = 0; - for (int i = 0; i < timestamps->n_segments; i++) { + for (int i = 0; i < (int)timestamps->segments.size(); i++) { int segment_start_samples = timestamps->segments[i].start * WHISPER_SAMPLE_RATE; int segment_end_samples = timestamps->segments[i].end * WHISPER_SAMPLE_RATE; - if (i < timestamps->n_segments - 1) { + if (i < (int)timestamps->segments.size() - 1) { segment_end_samples += overlap_samples; } @@ -6727,7 +6725,7 @@ static bool whisper_vad( offset += segment_length; // Add silence after this segment (except after the last segment) - if (i < timestamps->n_segments - 1) { + if (i < (int)timestamps->segments.size() - 1) { // Fill with zeros (silence) memset(filtered_samples.data() + offset, 0, silence_samples * sizeof(float)); offset += silence_samples; From 4c7fe00cb09200da911a0b33bf61c127447d80a3 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sat, 10 May 2025 17:17:30 +0200 Subject: [PATCH 40/49] vad : rename whisper_vad_timestamps to whisper_vad_segments [no ci] --- include/whisper.h | 14 +++++----- src/whisper.cpp | 68 +++++++++++++++++++++++----------------------- tests/test-vad.cpp | 16 +++++------ 3 files changed, 49 insertions(+), 49 deletions(-) diff --git a/include/whisper.h b/include/whisper.h index 600b8a07459..3eaa3883f41 100644 --- a/include/whisper.h +++ b/include/whisper.h @@ -710,24 +710,24 @@ extern "C" { const float * samples, int n_samples); - struct whisper_vad_timestamps; + struct whisper_vad_segments; - WHISPER_API struct whisper_vad_timestamps * whisper_vad_timestamps_from_probs( + WHISPER_API struct whisper_vad_segments * whisper_vad_segments_from_probs( struct whisper_vad_params params, struct whisper_vad_probs * probs); - WHISPER_API struct whisper_vad_timestamps * whisper_vad_timestamps_from_samples( + WHISPER_API struct whisper_vad_segments * whisper_vad_segments_from_samples( struct whisper_vad_context * vctx, struct whisper_vad_params params, const float * samples, int n_samples); - WHISPER_API int whisper_vad_timestamps_n_segments(struct whisper_vad_timestamps * timestamps); + WHISPER_API int whisper_vad_segments_n_segments(struct whisper_vad_segments * segments); - WHISPER_API float whisper_vad_timestamps_get_segment_t0(struct whisper_vad_timestamps * timestamps, int i_segment); - WHISPER_API float whisper_vad_timestamps_get_segment_t1(struct whisper_vad_timestamps * timestamps, int i_segment); + WHISPER_API float whisper_vad_segments_get_segment_t0(struct whisper_vad_segments * segments, int i_segment); + WHISPER_API float whisper_vad_segments_get_segment_t1(struct whisper_vad_segments * segments, int i_segment); - WHISPER_API void whisper_vad_free_timestamps(struct whisper_vad_timestamps * timestamps); + WHISPER_API void whisper_vad_free_segments(struct whisper_vad_segments * segments); WHISPER_API void whisper_vad_free_state (struct whisper_vad_state * state); WHISPER_API void whisper_vad_free (struct whisper_vad_context * ctx); diff --git a/src/whisper.cpp b/src/whisper.cpp index 7383f5f47ae..4bb5d95bb74 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4435,7 +4435,7 @@ struct whisper_vad_segment { float end; // End time in seconds }; -struct whisper_vad_timestamps { +struct whisper_vad_segments { std::vector segments; }; @@ -5203,19 +5203,19 @@ struct whisper_vad_probs whisper_vad_detect_speech( return speech; } -int whisper_vad_timestamps_n_segments(struct whisper_vad_timestamps * timestamps) { +int whisper_vad_segments_n_segments(struct whisper_vad_segments * timestamps) { return timestamps->segments.size(); } -float whisper_vad_timestamps_get_segment_t0(struct whisper_vad_timestamps * timestamps, int i_segment) { +float whisper_vad_segments_get_segment_t0(struct whisper_vad_segments * timestamps, int i_segment) { return timestamps->segments[i_segment].start; } -float whisper_vad_timestamps_get_segment_t1(struct whisper_vad_timestamps * timestamps, int i_segment) { +float whisper_vad_segments_get_segment_t1(struct whisper_vad_segments * timestamps, int i_segment) { return timestamps->segments[i_segment].end; } -struct whisper_vad_timestamps * whisper_vad_timestamps_from_probs( +struct whisper_vad_segments * whisper_vad_segments_from_probs( whisper_vad_params params, whisper_vad_probs * vad_probs) { WHISPER_LOG_INFO("%s: detecting speech timestamps using %d probabilities\n", __func__, vad_probs->n_probs); @@ -5440,23 +5440,23 @@ struct whisper_vad_timestamps * whisper_vad_timestamps_from_probs( __func__, i, segments[i].start, segments[i].end, segments[i].end - segments[i].start); } - whisper_vad_timestamps * timestamps = new whisper_vad_timestamps; - if (timestamps == NULL) { - WHISPER_LOG_ERROR("%s: failed to allocate memory for whisper_vad_timstamps\n", __func__); + whisper_vad_segments * vad_segments = new whisper_vad_segments; + if (vad_segments == NULL) { + WHISPER_LOG_ERROR("%s: failed to allocate memory for whisper_vad_segments\n", __func__); return nullptr; } - timestamps->segments = std::move(segments); - return timestamps; + vad_segments->segments = std::move(segments); + return vad_segments; } -struct whisper_vad_timestamps * whisper_vad_timestamps_from_samples( +struct whisper_vad_segments * whisper_vad_segments_from_samples( whisper_vad_context * vctx, whisper_vad_params params, const float * samples, int n_samples) { WHISPER_LOG_INFO("%s: detecting speech timestamps in %d samples\n", __func__, n_samples); auto probs = whisper_vad_detect_speech(vctx, samples, n_samples); - return whisper_vad_timestamps_from_probs(params, &probs); + return whisper_vad_segments_from_probs(params, &probs); } void whisper_vad_free(whisper_vad_context * ctx) { @@ -5487,7 +5487,7 @@ void whisper_vad_free_state(whisper_vad_state * state) { } } -void whisper_vad_free_timestamps(whisper_vad_timestamps * timestamps) { +void whisper_vad_free_segments(whisper_vad_segments * timestamps) { if (timestamps) { delete timestamps; } @@ -6650,36 +6650,36 @@ static bool whisper_vad( const whisper_vad_params & vad_params = params.vad_params; - whisper_vad_timestamps * timestamps = whisper_vad_timestamps_from_samples(vctx, vad_params, samples, n_samples); + whisper_vad_segments * vad_segments = whisper_vad_segments_from_samples(vctx, vad_params, samples, n_samples); - if (timestamps->segments.size() > 0) { + if (vad_segments->segments.size() > 0) { state->has_vad_segments = true; ctx->state->vad_segments.clear(); - ctx->state->vad_segments.reserve(timestamps->segments.size()); + ctx->state->vad_segments.reserve(vad_segments->segments.size()); - WHISPER_LOG_INFO("%s: detected %d speech segments\n", __func__, (int)timestamps->segments.size()); + WHISPER_LOG_INFO("%s: detected %d speech segments\n", __func__, (int)vad_segments->segments.size()); float overlap_seconds = vad_params.samples_overlap; int overlap_samples = overlap_seconds * WHISPER_SAMPLE_RATE; - for (int i = 0; i < (int)timestamps->segments.size(); i++) { - int segment_start_samples = timestamps->segments[i].start * WHISPER_SAMPLE_RATE; - int segment_end_samples = timestamps->segments[i].end * WHISPER_SAMPLE_RATE; + for (int i = 0; i < (int)vad_segments->segments.size(); i++) { + int segment_start_samples = vad_segments->segments[i].start * WHISPER_SAMPLE_RATE; + int segment_end_samples = vad_segments->segments[i].end * WHISPER_SAMPLE_RATE; - if (i < (int)timestamps->segments.size() - 1) { + if (i < (int)vad_segments->segments.size() - 1) { segment_end_samples += overlap_samples; } segment_end_samples = std::min(segment_end_samples, n_samples - 1); filtered_n_samples += (segment_end_samples - segment_start_samples); WHISPER_LOG_INFO("%s: Including segment %d: %.2f - %.2f (duration: %.2f)\n", - __func__, i, timestamps->segments[i].start, - timestamps->segments[i].end + (i < (int)timestamps->segments.size() - 1 ? overlap_seconds : 0), - (timestamps->segments[i].end - timestamps->segments[i].start) + - (i < (int)timestamps->segments.size() - 1 ? overlap_seconds : 0)); + __func__, i, vad_segments->segments[i].start, + vad_segments->segments[i].end + (i < (int)vad_segments->segments.size() - 1 ? overlap_seconds : 0), + (vad_segments->segments[i].end - vad_segments->segments[i].start) + + (i < (int)vad_segments->segments.size() - 1 ? overlap_seconds : 0)); } int silence_samples = 0.1 * WHISPER_SAMPLE_RATE; - int total_silence_samples = (timestamps->segments.size() > 1) ? (timestamps->segments.size() - 1) * silence_samples : 0; + int total_silence_samples = (vad_segments->segments.size() > 1) ? (vad_segments->segments.size() - 1) * silence_samples : 0; int total_samples_needed = filtered_n_samples + total_silence_samples; WHISPER_LOG_INFO("%s: total duration of speech segments: %.2f seconds\n", @@ -6689,17 +6689,17 @@ static bool whisper_vad( filtered_samples.resize(total_samples_needed); } catch (const std::bad_alloc & /* e */) { WHISPER_LOG_ERROR("%s: failed to allocate memory for filtered samples\n", __func__); - whisper_vad_free_timestamps(timestamps); + whisper_vad_free_segments(vad_segments); whisper_vad_free(vctx); return false; } int offset = 0; - for (int i = 0; i < (int)timestamps->segments.size(); i++) { - int segment_start_samples = timestamps->segments[i].start * WHISPER_SAMPLE_RATE; - int segment_end_samples = timestamps->segments[i].end * WHISPER_SAMPLE_RATE; + for (int i = 0; i < (int)vad_segments->segments.size(); i++) { + int segment_start_samples = vad_segments->segments[i].start * WHISPER_SAMPLE_RATE; + int segment_end_samples = vad_segments->segments[i].end * WHISPER_SAMPLE_RATE; - if (i < (int)timestamps->segments.size() - 1) { + if (i < (int)vad_segments->segments.size() - 1) { segment_end_samples += overlap_samples; } @@ -6710,8 +6710,8 @@ static bool whisper_vad( if (segment_length > 0) { whisper_state::vad_segment_info segment; - segment.orig_start = timestamps->segments[i].start; - segment.orig_end = timestamps->segments[i].end; + segment.orig_start = vad_segments->segments[i].start; + segment.orig_end = vad_segments->segments[i].end; segment.vad_start = offset / (float)WHISPER_SAMPLE_RATE; segment.vad_end = (offset + segment_length) / (float)WHISPER_SAMPLE_RATE; @@ -6725,7 +6725,7 @@ static bool whisper_vad( offset += segment_length; // Add silence after this segment (except after the last segment) - if (i < (int)timestamps->segments.size() - 1) { + if (i < (int)vad_segments->segments.size() - 1) { // Fill with zeros (silence) memset(filtered_samples.data() + offset, 0, silence_samples * sizeof(float)); offset += silence_samples; diff --git a/tests/test-vad.cpp b/tests/test-vad.cpp index 138a19c79f9..e4302622204 100644 --- a/tests/test-vad.cpp +++ b/tests/test-vad.cpp @@ -35,17 +35,17 @@ struct whisper_vad_probs test_detect_speech( return vad_probs; } -struct whisper_vad_timestamps * test_detect_timestamps( +struct whisper_vad_segments * test_detect_timestamps( struct whisper_vad_context * vctx, struct whisper_vad_params params, struct whisper_vad_probs * probs) { - struct whisper_vad_timestamps * timestamps = whisper_vad_timestamps_from_probs(params, probs); - assert(whisper_vad_timestamps_n_segments(timestamps) == 5); + struct whisper_vad_segments * timestamps = whisper_vad_segments_from_probs(params, probs); + assert(whisper_vad_segments_n_segments(timestamps) == 5); - for (int i = 0; i < whisper_vad_timestamps_n_segments(timestamps); ++i) { + for (int i = 0; i < whisper_vad_segments_n_segments(timestamps); ++i) { printf("VAD segment %d: start = %.2f, end = %.2f\n", i, - whisper_vad_timestamps_get_segment_t0(timestamps, i), - whisper_vad_timestamps_get_segment_t1(timestamps, i)); + whisper_vad_segments_get_segment_t0(timestamps, i), + whisper_vad_segments_get_segment_t1(timestamps, i)); } return timestamps; @@ -78,9 +78,9 @@ int main() { struct whisper_vad_probs probs = test_detect_speech(vctx, params, pcmf32.data(), pcmf32.size()); // Test speech timestamps (uses speech probabilities from above) - struct whisper_vad_timestamps * timestamps = test_detect_timestamps(vctx, params, &probs); + struct whisper_vad_segments * timestamps = test_detect_timestamps(vctx, params, &probs); - whisper_vad_free_timestamps(timestamps); + whisper_vad_free_segments(timestamps); whisper_vad_free(vctx); return 0; From dc541f933eacb469849a2a9e2458fe136ae1944f Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sun, 11 May 2025 07:27:46 +0200 Subject: [PATCH 41/49] vad : remove whisper_vad_probs struct [no ci] This commit removes the `whisper_vad_probs` struct and the code now uses the probs in the vad context directly. --- include/whisper.h | 13 ++++++------- src/whisper.cpp | 36 +++++++++++++++++++++--------------- tests/test-vad.cpp | 19 ++++++++----------- 3 files changed, 35 insertions(+), 33 deletions(-) diff --git a/include/whisper.h b/include/whisper.h index 3eaa3883f41..3a8934de7e5 100644 --- a/include/whisper.h +++ b/include/whisper.h @@ -700,21 +700,20 @@ extern "C" { struct whisper_model_loader * loader, struct whisper_vad_context_params params); - struct whisper_vad_probs { - int n_probs; - float * probs; - }; - WHISPER_API struct whisper_vad_probs whisper_vad_detect_speech( + WHISPER_API bool whisper_vad_detect_speech( struct whisper_vad_context * vctx, const float * samples, int n_samples); + WHISPER_API int whisper_vad_n_probs(struct whisper_vad_context * vctx); + WHISPER_API float * whisper_vad_probs (struct whisper_vad_context * vctx); + struct whisper_vad_segments; WHISPER_API struct whisper_vad_segments * whisper_vad_segments_from_probs( - struct whisper_vad_params params, - struct whisper_vad_probs * probs); + struct whisper_vad_context * vctx, + struct whisper_vad_params params); WHISPER_API struct whisper_vad_segments * whisper_vad_segments_from_samples( struct whisper_vad_context * vctx, diff --git a/src/whisper.cpp b/src/whisper.cpp index 4bb5d95bb74..f7bb8bf8b42 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -5116,7 +5116,7 @@ struct whisper_vad_context * whisper_vad_init_with_params_no_state(struct whispe return vctx; } -struct whisper_vad_probs whisper_vad_detect_speech( +bool whisper_vad_detect_speech( struct whisper_vad_context * vctx, const float * samples, int n_samples) { @@ -5142,7 +5142,7 @@ struct whisper_vad_probs whisper_vad_detect_speech( if (!ggml_backend_sched_alloc_graph(sched, gf)) { WHISPER_LOG_ERROR("%s: failed to allocate the compute buffer\n", __func__); - return {}; + return false; } struct ggml_tensor * frame = ggml_graph_get_tensor(gf, "frame"); @@ -5195,12 +5195,7 @@ struct whisper_vad_probs whisper_vad_detect_speech( ggml_backend_sched_reset(sched); - struct whisper_vad_probs speech = { - /* n_probs = */ n_chunks, - /* probs = */ vctx->state->probs.data(), - }; - - return speech; + return true; } int whisper_vad_segments_n_segments(struct whisper_vad_segments * timestamps) { @@ -5215,13 +5210,21 @@ float whisper_vad_segments_get_segment_t1(struct whisper_vad_segments * timestam return timestamps->segments[i_segment].end; } +int whisper_vad_n_probs(struct whisper_vad_context * vctx) { + return vctx->state->probs.size(); +} + +float * whisper_vad_probs(struct whisper_vad_context * vctx) { + return vctx->state->probs.data(); +} + struct whisper_vad_segments * whisper_vad_segments_from_probs( - whisper_vad_params params, - whisper_vad_probs * vad_probs) { - WHISPER_LOG_INFO("%s: detecting speech timestamps using %d probabilities\n", __func__, vad_probs->n_probs); + struct whisper_vad_context * vctx, + whisper_vad_params params) { + WHISPER_LOG_INFO("%s: detecting speech timestamps using %d probabilities\n", __func__, whisper_vad_n_probs(vctx)); - int n_probs = vad_probs->n_probs; - float * probs = vad_probs->probs; + int n_probs = whisper_vad_n_probs(vctx); + float * probs = whisper_vad_probs(vctx); float threshold = params.threshold; int min_speech_duration_ms = params.min_speech_duration_ms; int min_silence_duration_ms = params.min_silence_duration_ms; @@ -5455,8 +5458,11 @@ struct whisper_vad_segments * whisper_vad_segments_from_samples( const float * samples, int n_samples) { WHISPER_LOG_INFO("%s: detecting speech timestamps in %d samples\n", __func__, n_samples); - auto probs = whisper_vad_detect_speech(vctx, samples, n_samples); - return whisper_vad_segments_from_probs(params, &probs); + if (!whisper_vad_detect_speech(vctx, samples, n_samples)) { + WHISPER_LOG_ERROR("%s: failed to detect speech\n", __func__); + return nullptr; + } + return whisper_vad_segments_from_probs(vctx, params); } void whisper_vad_free(whisper_vad_context * ctx) { diff --git a/tests/test-vad.cpp b/tests/test-vad.cpp index e4302622204..734e9ba366e 100644 --- a/tests/test-vad.cpp +++ b/tests/test-vad.cpp @@ -23,23 +23,20 @@ void assert_default_context_params(const struct whisper_vad_context_params & par assert(params.gpu_device == 0); } -struct whisper_vad_probs test_detect_speech( +void test_detect_speech( struct whisper_vad_context * vctx, struct whisper_vad_params params, const float * pcmf32, int n_samples) { - struct whisper_vad_probs vad_probs = whisper_vad_detect_speech(vctx, pcmf32, n_samples); - assert(vad_probs.n_probs == 344); - assert(vad_probs.probs != nullptr); - - return vad_probs; + assert(whisper_vad_detect_speech(vctx, pcmf32, n_samples)); + assert(whisper_vad_n_probs(vctx) == 344); + assert(whisper_vad_probs(vctx) != nullptr); } struct whisper_vad_segments * test_detect_timestamps( struct whisper_vad_context * vctx, - struct whisper_vad_params params, - struct whisper_vad_probs * probs) { - struct whisper_vad_segments * timestamps = whisper_vad_segments_from_probs(params, probs); + struct whisper_vad_params params) { + struct whisper_vad_segments * timestamps = whisper_vad_segments_from_probs(vctx, params); assert(whisper_vad_segments_n_segments(timestamps) == 5); for (int i = 0; i < whisper_vad_segments_n_segments(timestamps); ++i) { @@ -75,10 +72,10 @@ int main() { assert_default_params(params); // Test speech probabilites - struct whisper_vad_probs probs = test_detect_speech(vctx, params, pcmf32.data(), pcmf32.size()); + test_detect_speech(vctx, params, pcmf32.data(), pcmf32.size()); // Test speech timestamps (uses speech probabilities from above) - struct whisper_vad_segments * timestamps = test_detect_timestamps(vctx, params, &probs); + struct whisper_vad_segments * timestamps = test_detect_timestamps(vctx, params); whisper_vad_free_segments(timestamps); whisper_vad_free(vctx); From 163ad538474b4c46ed824d562109882e717313b4 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sun, 11 May 2025 10:01:39 +0200 Subject: [PATCH 42/49] vad : remove whisper_vad_state struct This commit merges the whisper_vad_state with the whisper_vad_context struct and removes the whisper_vad_state struct. --- include/whisper.h | 34 +++------- src/whisper.cpp | 157 ++++++++++++++++++---------------------------- 2 files changed, 72 insertions(+), 119 deletions(-) diff --git a/include/whisper.h b/include/whisper.h index 3a8934de7e5..910b3d23182 100644 --- a/include/whisper.h +++ b/include/whisper.h @@ -674,7 +674,6 @@ extern "C" { // struct whisper_vad_context; - struct whisper_vad_state; WHISPER_API struct whisper_vad_params whisper_vad_default_params(void); @@ -686,25 +685,13 @@ extern "C" { WHISPER_API struct whisper_vad_context_params whisper_vad_default_context_params(void); - WHISPER_API struct whisper_vad_state * whisper_vad_init_state(struct whisper_vad_context * ctx); - - WHISPER_API struct whisper_vad_context * whisper_vad_init_from_file_with_params( - const char * path_model, - const struct whisper_vad_context_params params); - - WHISPER_API struct whisper_vad_context * whisper_vad_init_from_file_with_params_no_state( - const char * path_model, - const struct whisper_vad_context_params params); - - WHISPER_API struct whisper_vad_context * whisper_vad_init_with_params_no_state( - struct whisper_model_loader * loader, - struct whisper_vad_context_params params); - + WHISPER_API struct whisper_vad_context * whisper_vad_init_from_file_with_params(const char * path_model, struct whisper_vad_context_params params); + WHISPER_API struct whisper_vad_context * whisper_vad_init_with_params (struct whisper_model_loader * loader, struct whisper_vad_context_params params); WHISPER_API bool whisper_vad_detect_speech( struct whisper_vad_context * vctx, - const float * samples, - int n_samples); + const float * samples, + int n_samples); WHISPER_API int whisper_vad_n_probs(struct whisper_vad_context * vctx); WHISPER_API float * whisper_vad_probs (struct whisper_vad_context * vctx); @@ -713,22 +700,21 @@ extern "C" { WHISPER_API struct whisper_vad_segments * whisper_vad_segments_from_probs( struct whisper_vad_context * vctx, - struct whisper_vad_params params); + struct whisper_vad_params params); WHISPER_API struct whisper_vad_segments * whisper_vad_segments_from_samples( struct whisper_vad_context * vctx, - struct whisper_vad_params params, - const float * samples, - int n_samples); + struct whisper_vad_params params, + const float * samples, + int n_samples); WHISPER_API int whisper_vad_segments_n_segments(struct whisper_vad_segments * segments); WHISPER_API float whisper_vad_segments_get_segment_t0(struct whisper_vad_segments * segments, int i_segment); WHISPER_API float whisper_vad_segments_get_segment_t1(struct whisper_vad_segments * segments, int i_segment); - WHISPER_API void whisper_vad_free_segments(struct whisper_vad_segments * segments); - WHISPER_API void whisper_vad_free_state (struct whisper_vad_state * state); - WHISPER_API void whisper_vad_free (struct whisper_vad_context * ctx); + WHISPER_API void whisper_vad_free_segments (struct whisper_vad_segments * segments); + WHISPER_API void whisper_vad_free (struct whisper_vad_context * ctx); //////////////////////////////////////////////////////////////////////////// diff --git a/src/whisper.cpp b/src/whisper.cpp index f7bb8bf8b42..80a63183cd1 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4414,22 +4414,6 @@ struct whisper_vad_model { std::map tensors; }; -struct whisper_vad_state { - int64_t t_vad_us = 0; - std::vector backends; - - struct ggml_tensor * h_state; - struct ggml_tensor * c_state; - - ggml_backend_buffer_t buffer = nullptr; - - std::vector ctx_buf; - - whisper_sched sched; - - std::vector probs; -}; - struct whisper_vad_segment { float start; // Start time in seconds float end; // End time in seconds @@ -4440,19 +4424,23 @@ struct whisper_vad_segments { }; struct whisper_vad_context { - int64_t t_load_us = 0; - int64_t t_start_us = 0; + int64_t t_vad_us = 0; int n_window; int n_context; int n_threads; - whisper_vad_model model; - whisper_vad_state * state = nullptr; - - whisper_context_params params; + std::vector backends; + ggml_backend_buffer_t buffer = nullptr; + whisper_context_params params; + std::vector ctx_buf; + whisper_sched sched; - std::string path_model; + whisper_vad_model model; + std::string path_model; + struct ggml_tensor * h_state; + struct ggml_tensor * c_state; + std::vector probs; }; struct whisper_vad_context_params whisper_vad_default_context_params(void) { @@ -4596,7 +4584,7 @@ static ggml_tensor * whisper_vad_build_lstm_layer(ggml_context * ctx0, inp_gate = ggml_add(ctx0, inp_gate, model.lstm_ih_bias); // Create operations using the hidden-to-hidden weights. - struct ggml_tensor * hid_gate = ggml_mul_mat(ctx0, model.lstm_hh_weight, vctx.state->h_state); + struct ggml_tensor * hid_gate = ggml_mul_mat(ctx0, model.lstm_hh_weight, vctx.h_state); hid_gate = ggml_add(ctx0, hid_gate, model.lstm_hh_bias); // Create add operation to get preactivations for all gates. @@ -4618,13 +4606,13 @@ static ggml_tensor * whisper_vad_build_lstm_layer(ggml_context * ctx0, // Update cell state struct ggml_tensor * c_out = ggml_add(ctx0, - ggml_mul(ctx0, f_t, vctx.state->c_state), + ggml_mul(ctx0, f_t, vctx.c_state), ggml_mul(ctx0, i_t, g_t)); - ggml_build_forward_expand(gf, ggml_cpy(ctx0, c_out, vctx.state->c_state)); + ggml_build_forward_expand(gf, ggml_cpy(ctx0, c_out, vctx.c_state)); // Update hidden state struct ggml_tensor * out = ggml_mul(ctx0, o_t, ggml_tanh(ctx0, c_out)); - ggml_build_forward_expand(gf, ggml_cpy(ctx0, out, vctx.state->h_state)); + ggml_build_forward_expand(gf, ggml_cpy(ctx0, out, vctx.h_state)); return out; } @@ -4633,8 +4621,8 @@ static struct ggml_cgraph * whisper_vad_build_graph(whisper_vad_context & vctx) const auto & model = vctx.model; struct ggml_init_params params = { - /*.mem_size =*/ vctx.state->sched.meta.size(), - /*.mem_buffer =*/ vctx.state->sched.meta.data(), + /*.mem_size =*/ vctx.sched.meta.size(), + /*.mem_buffer =*/ vctx.sched.meta.data(), /*.no_alloc =*/ true, }; @@ -4672,9 +4660,7 @@ static struct ggml_cgraph * whisper_vad_build_graph(whisper_vad_context & vctx) return gf; } -struct whisper_vad_state * whisper_vad_init_state(whisper_vad_context * vctx) { - whisper_vad_state * state = new whisper_vad_state; - vctx->state = state; +static bool whisper_vad_init_context(whisper_vad_context * vctx) { auto whisper_context_params = whisper_context_default_params(); // TODO: GPU VAD is forced disabled until the performance is improved @@ -4682,82 +4668,62 @@ struct whisper_vad_state * whisper_vad_init_state(whisper_vad_context * vctx) { whisper_context_params.use_gpu = false; whisper_context_params.gpu_device = vctx->params.gpu_device; - state->backends = whisper_backend_init(whisper_context_params); - if (state->backends.empty()) { + vctx->backends = whisper_backend_init(whisper_context_params); + if (vctx->backends.empty()) { WHISPER_LOG_ERROR("%s: whisper_backend_init() failed\n", __func__); - whisper_vad_free_state(state); - return nullptr; + return false; } const int32_t lstm_hidden_size = vctx->model.hparams.lstm_hidden_size; - state->ctx_buf.resize(2u*ggml_tensor_overhead()); + vctx->ctx_buf.resize(2u*ggml_tensor_overhead()); struct ggml_init_params params = { - /*.mem_size =*/ state->ctx_buf.size(), - /*.mem_buffer =*/ state->ctx_buf.data(), + /*.mem_size =*/ vctx->ctx_buf.size(), + /*.mem_buffer =*/ vctx->ctx_buf.data(), /*.no_alloc =*/ true, }; ggml_context * ctx = ggml_init(params); if (!ctx) { WHISPER_LOG_ERROR("%s: failed to init LSTM state ggml context\n", __func__); - whisper_vad_free_state(state); - return nullptr; + return false; } // LSTM Hidden state - state->h_state = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, lstm_hidden_size); - ggml_set_name(state->h_state, "h_state"); + vctx->h_state = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, lstm_hidden_size); + ggml_set_name(vctx->h_state, "h_state"); // LSTM Cell state - state->c_state = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, lstm_hidden_size); - ggml_set_name(state->c_state, "c_state"); + vctx->c_state = ggml_new_tensor_1d(ctx, GGML_TYPE_F32, lstm_hidden_size); + ggml_set_name(vctx->c_state, "c_state"); - state->buffer = ggml_backend_alloc_ctx_tensors(ctx, state->backends[0]); - if (!state->buffer) { + vctx->buffer = ggml_backend_alloc_ctx_tensors(ctx, vctx->backends[0]); + if (!vctx->buffer) { WHISPER_LOG_ERROR("%s: failed to allocate memory for the VAD state\n", __func__); - whisper_vad_free_state(state); - return nullptr; + return false; } { - bool ok = whisper_sched_graph_init(state->sched, state->backends, + bool ok = whisper_sched_graph_init(vctx->sched, vctx->backends, [&]() { return whisper_vad_build_graph(*vctx); }); if (!ok) { WHISPER_LOG_ERROR("%s: failed to init VAD allocator\n", __func__); - whisper_vad_free_state(state); - return nullptr; + return false; } - WHISPER_LOG_INFO("%s: compute buffer (VAD) = %7.2f MB\n", __func__, whisper_sched_size(state->sched) / 1e6); + WHISPER_LOG_INFO("%s: compute buffer (VAD) = %7.2f MB\n", __func__, whisper_sched_size(vctx->sched) / 1e6); } - return state; + return true; } struct whisper_vad_context * whisper_vad_init_from_file_with_params( - const char * path_model, struct whisper_vad_context_params params) { - whisper_vad_context * ctx = whisper_vad_init_from_file_with_params_no_state(path_model, params); - if (!ctx) { - return nullptr; - } - - whisper_vad_init_state(ctx); - if (!ctx->state) { - whisper_vad_free(ctx); - return nullptr; - } - - return ctx; -} - -whisper_vad_context * whisper_vad_init_from_file_with_params_no_state( const char * path_model, - const whisper_vad_context_params params) { + struct whisper_vad_context_params params) { WHISPER_LOG_INFO("%s: loading VAD model from '%s'\n", __func__, path_model); #ifdef _MSC_VER std::wstring_convert> converter; @@ -4790,15 +4756,18 @@ whisper_vad_context * whisper_vad_init_from_file_with_params_no_state( fin->close(); }; - auto ctx = whisper_vad_init_with_params_no_state(&loader, params); - if (ctx) { - ctx->path_model = path_model; + auto ctx = whisper_vad_init_with_params(&loader, params); + if (!ctx) { + whisper_vad_free(ctx); + return nullptr; } - + ctx->path_model = path_model; return ctx; } -struct whisper_vad_context * whisper_vad_init_with_params_no_state(struct whisper_model_loader * loader, struct whisper_vad_context_params params) { +struct whisper_vad_context * whisper_vad_init_with_params( + struct whisper_model_loader * loader, + struct whisper_vad_context_params params) { // Read the VAD model { uint32_t magic; @@ -5113,6 +5082,11 @@ struct whisper_vad_context * whisper_vad_init_with_params_no_state(struct whispe } + if (!whisper_vad_init_context(vctx)) { + whisper_vad_free(vctx); + return nullptr; + } + return vctx; } @@ -5129,14 +5103,14 @@ bool whisper_vad_detect_speech( WHISPER_LOG_INFO("%s: n_chunks: %d\n", __func__, n_chunks); // Reset LSTM hidden/cell states - ggml_backend_buffer_clear(vctx->state->buffer, 0); + ggml_backend_buffer_clear(vctx->buffer, 0); - vctx->state->probs.resize(n_chunks); + vctx->probs.resize(n_chunks); WHISPER_LOG_INFO("%s: props size: %u\n", __func__, n_chunks); std::vector window(vctx->n_window, 0.0f); - auto & sched = vctx->state->sched.sched; + auto & sched = vctx->sched.sched; ggml_cgraph * gf = whisper_vad_build_graph(*vctx); @@ -5185,13 +5159,13 @@ bool whisper_vad_detect_speech( } // Get the probability for this chunk. - ggml_backend_tensor_get(prob, &vctx->state->probs[i], 0, sizeof(float)); + ggml_backend_tensor_get(prob, &vctx->probs[i], 0, sizeof(float)); //WHISPER_LOG_DEBUG("chunk %d: p = %7.3f\n", i, probs[i]); } - vctx->state->t_vad_us += ggml_time_us() - t_start_vad_us; - WHISPER_LOG_INFO("%s: vad time = %.2f ms processing %d samples\n", __func__, 1e-3f * vctx->state->t_vad_us, n_samples); + vctx->t_vad_us += ggml_time_us() - t_start_vad_us; + WHISPER_LOG_INFO("%s: vad time = %.2f ms processing %d samples\n", __func__, 1e-3f * vctx->t_vad_us, n_samples); ggml_backend_sched_reset(sched); @@ -5211,11 +5185,11 @@ float whisper_vad_segments_get_segment_t1(struct whisper_vad_segments * timestam } int whisper_vad_n_probs(struct whisper_vad_context * vctx) { - return vctx->state->probs.size(); + return vctx->probs.size(); } float * whisper_vad_probs(struct whisper_vad_context * vctx) { - return vctx->state->probs.data(); + return vctx->probs.data(); } struct whisper_vad_segments * whisper_vad_segments_from_probs( @@ -5475,21 +5449,14 @@ void whisper_vad_free(whisper_vad_context * ctx) { ggml_backend_buffer_free(buf); } - whisper_vad_free_state(ctx->state); - - delete ctx; - } -} - -void whisper_vad_free_state(whisper_vad_state * state) { - if (state) { - ggml_backend_sched_free(state->sched.sched); + ggml_backend_sched_free(ctx->sched.sched); - for (auto & backend : state->backends) { + for (auto & backend : ctx->backends) { ggml_backend_free(backend); } - delete state; + + delete ctx; } } From 810981f4cf4bdc3ebe954f46bd10bd452a442db7 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Mon, 12 May 2025 13:23:40 +0200 Subject: [PATCH 43/49] vad : remove window_size_samples from VAD params This commit removes the window_size_samples parameter from the VAD parameters in the Whisper library. The window size is now determined by the number of windows in the VAD context, which is set to 512 by default and is set by the model. --- examples/cli/cli.cpp | 4 ---- include/whisper.h | 1 - src/whisper.cpp | 9 ++++----- tests/test-vad-full.cpp | 1 - tests/test-vad.cpp | 1 - 5 files changed, 4 insertions(+), 12 deletions(-) diff --git a/examples/cli/cli.cpp b/examples/cli/cli.cpp index a26f8865bc9..25215f3ab0e 100644 --- a/examples/cli/cli.cpp +++ b/examples/cli/cli.cpp @@ -107,7 +107,6 @@ struct whisper_params { int vad_min_silence_duration_ms = 100; float vad_max_speech_duration_s = FLT_MAX; int vad_speech_pad_ms = 30; - int vad_window_size_samples = 512; float vad_samples_overlap = 0.1f; }; @@ -205,7 +204,6 @@ static bool whisper_params_parse(int argc, char ** argv, whisper_params & params else if (arg == "-vsd" || arg == "--vad-min-silence-duration-ms") { params.vad_min_speech_duration_ms = std::stoi(ARGV_NEXT); } else if (arg == "-vmsd" || arg == "--vad-max-speech-duration-s") { params.vad_max_speech_duration_s = std::stof(ARGV_NEXT); } else if (arg == "-vp" || arg == "--vad-speech-pad-ms") { params.vad_speech_pad_ms = std::stoi(ARGV_NEXT); } - else if (arg == "-vs" || arg == "--vad-window-size-samples") { params.vad_window_size_samples = std::stoi(ARGV_NEXT); } else if (arg == "-vo" || arg == "--vad-samples-overlap") { params.vad_samples_overlap = std::stof(ARGV_NEXT); } else { fprintf(stderr, "error: unknown argument: %s\n", arg.c_str()); @@ -281,7 +279,6 @@ static void whisper_print_usage(int /*argc*/, char ** argv, const whisper_params fprintf(stderr, " -v, --vad [%-7s] enable Voice Activity Detection (VAD)\n", params.vad ? "true" : "false"); fprintf(stderr, " -vm FNAME, --vad-model FNAME [%-7s] VAD model path\n", params.vad_model.c_str()); fprintf(stderr, " -vt N, --vad-threshold N [%-7.2f] VAD threshold for speech recognition\n", params.vad_threshold); - fprintf(stderr, " -vs N, --vad-window-size-samples N [%-7d] VAD window size\n", params.vad_window_size_samples); fprintf(stderr, " -vspd N, --vad-min-speech-duration-ms N [%-7d] VAD min speech duration\n", params.vad_min_speech_duration_ms); fprintf(stderr, " -vsd N, --vad-min-silence-duration-ms N [%-7d] VAD min silence duration\n", params.vad_min_silence_duration_ms); fprintf(stderr, " -vmsd N, --vad-max-speech-duration-s N [%-7s] VAD max speech duration\n", params.vad_max_speech_duration_s == FLT_MAX ? @@ -1174,7 +1171,6 @@ int main(int argc, char ** argv) { wparams.vad_params.min_silence_duration_ms = params.vad_min_silence_duration_ms; wparams.vad_params.max_speech_duration_s = params.vad_max_speech_duration_s; wparams.vad_params.speech_pad_ms = params.vad_speech_pad_ms; - wparams.vad_params.window_size_samples = params.vad_window_size_samples; wparams.vad_params.samples_overlap = params.vad_samples_overlap; whisper_print_user_data user_data = { ¶ms, &pcmf32s, 0 }; diff --git a/include/whisper.h b/include/whisper.h index 910b3d23182..bfbb827be71 100644 --- a/include/whisper.h +++ b/include/whisper.h @@ -195,7 +195,6 @@ extern "C" { int min_silence_duration_ms; // Min silence duration to consider speech as ended. float max_speech_duration_s; // Max duration of a speech segment before forcing a new segment. int speech_pad_ms; // Padding added before and after speech segments. - int window_size_samples; // Number of audio samples in each probability window. float samples_overlap; // Overlap in seconds when copying audio samples from speech segment. } whisper_vad_params; diff --git a/src/whisper.cpp b/src/whisper.cpp index 80a63183cd1..0ec5902727c 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4459,7 +4459,6 @@ struct whisper_vad_params whisper_vad_default_params(void) { /* min_silence_duration_ms = */ 100, /* max_speech_duration_s = */ FLT_MAX, /* speech_pad_ms = */ 30, - /* window_size_samples = */ 512, /* samples_overlap = */ 0.1, }; return result; @@ -5204,10 +5203,10 @@ struct whisper_vad_segments * whisper_vad_segments_from_probs( int min_silence_duration_ms = params.min_silence_duration_ms; float max_speech_duration_s = params.max_speech_duration_s; int speech_pad_ms = params.speech_pad_ms; - int window_size_samples = params.window_size_samples; + int n_window = vctx->n_window; int sample_rate = WHISPER_SAMPLE_RATE; int min_silence_samples = sample_rate * min_silence_duration_ms / 1000; - int audio_length_samples = n_probs * window_size_samples; + int audio_length_samples = n_probs * n_window; // Min number of samples to be considered valid speech. int min_speech_samples = sample_rate * min_speech_duration_ms / 1000; @@ -5219,7 +5218,7 @@ struct whisper_vad_segments * whisper_vad_segments_from_probs( if (max_speech_duration_s > 100000.0f) { max_speech_samples = INT_MAX / 2; } else { - int64_t temp = (int64_t)sample_rate * (int64_t)(max_speech_duration_s) - window_size_samples - 2 * speech_pad_samples; + int64_t temp = (int64_t)sample_rate * (int64_t)(max_speech_duration_s) - n_window - 2 * speech_pad_samples; max_speech_samples = (temp > INT_MAX) ? INT_MAX / 2 : (int)temp; if (max_speech_samples < 0) { max_speech_samples = INT_MAX / 2; @@ -5255,7 +5254,7 @@ struct whisper_vad_segments * whisper_vad_segments_from_probs( for (int i = 0; i < n_probs; i++) { float curr_prob = probs[i]; - int curr_sample = window_size_samples * i; + int curr_sample = n_window * i; // Reset temp_end when we get back to speech if ((curr_prob >= threshold) && temp_end) { diff --git a/tests/test-vad-full.cpp b/tests/test-vad-full.cpp index d01d387e827..9eac11ed2db 100644 --- a/tests/test-vad-full.cpp +++ b/tests/test-vad-full.cpp @@ -36,7 +36,6 @@ int main() { wparams.vad_params.min_silence_duration_ms = 100; wparams.vad_params.max_speech_duration_s = FLT_MAX; wparams.vad_params.speech_pad_ms = 30; - wparams.vad_params.window_size_samples = 512; assert(whisper_full_parallel(wctx, wparams, pcmf32.data(), pcmf32.size(), 1) == 0); diff --git a/tests/test-vad.cpp b/tests/test-vad.cpp index 734e9ba366e..e6886e31027 100644 --- a/tests/test-vad.cpp +++ b/tests/test-vad.cpp @@ -13,7 +13,6 @@ void assert_default_params(const struct whisper_vad_params & params) { assert(params.threshold == 0.5); assert(params.min_speech_duration_ms == 250); assert(params.min_silence_duration_ms == 100); - assert(params.window_size_samples == 512); assert(params.samples_overlap == 0.1f); } From 050038ca4cb3b8244f435daeef70decb0ae97259 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Mon, 12 May 2025 14:04:45 +0200 Subject: [PATCH 44/49] vad : clarify VAD CLI options [no ci] --- examples/cli/cli.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/cli/cli.cpp b/examples/cli/cli.cpp index 25215f3ab0e..7cf1e3bf1bb 100644 --- a/examples/cli/cli.cpp +++ b/examples/cli/cli.cpp @@ -276,16 +276,16 @@ static void whisper_print_usage(int /*argc*/, char ** argv, const whisper_params fprintf(stderr, " --grammar-penalty N [%-7.1f] scales down logits of nongrammar tokens\n", params.grammar_penalty); // Voice Activity Detection (VAD) parameters fprintf(stderr, "\nVoice Activity Detection (VAD) options:\n"); - fprintf(stderr, " -v, --vad [%-7s] enable Voice Activity Detection (VAD)\n", params.vad ? "true" : "false"); - fprintf(stderr, " -vm FNAME, --vad-model FNAME [%-7s] VAD model path\n", params.vad_model.c_str()); - fprintf(stderr, " -vt N, --vad-threshold N [%-7.2f] VAD threshold for speech recognition\n", params.vad_threshold); - fprintf(stderr, " -vspd N, --vad-min-speech-duration-ms N [%-7d] VAD min speech duration\n", params.vad_min_speech_duration_ms); - fprintf(stderr, " -vsd N, --vad-min-silence-duration-ms N [%-7d] VAD min silence duration\n", params.vad_min_silence_duration_ms); - fprintf(stderr, " -vmsd N, --vad-max-speech-duration-s N [%-7s] VAD max speech duration\n", params.vad_max_speech_duration_s == FLT_MAX ? - std::string("FLT_MAX").c_str() : - std::to_string(params.vad_max_speech_duration_s).c_str()); - fprintf(stderr, " -vp N, --vad_speech_pad_ms N [%-7d] VAD speech padding\n", params.vad_speech_pad_ms); - fprintf(stderr, " -vo N, --vad_samples_overlap N [%-7.2f] VAD samples overlap size\n", params.vad_samples_overlap); + fprintf(stderr, " -v, --vad [%-7s] enable Voice Activity Detection (VAD)\n", params.vad ? "true" : "false"); + fprintf(stderr, " -vm FNAME, --vad-model FNAME [%-7s] VAD model path\n", params.vad_model.c_str()); + fprintf(stderr, " -vt N, --vad-threshold N [%-7.2f] VAD threshold for speech recognition\n", params.vad_threshold); + fprintf(stderr, " -vspd N, --vad-min-speech-duration-ms N [%-7d] VAD min speech duration (0.0-1.0)\n", params.vad_min_speech_duration_ms); + fprintf(stderr, " -vsd N, --vad-min-silence-duration-ms N [%-7d] VAD min silence duration (to split segments)\n", params.vad_min_silence_duration_ms); + fprintf(stderr, " -vmsd N, --vad-max-speech-duration-s N [%-7s] VAD max speech duration (auto-split longer)\n", params.vad_max_speech_duration_s == FLT_MAX ? + std::string("FLT_MAX").c_str() : + std::to_string(params.vad_max_speech_duration_s).c_str()); + fprintf(stderr, " -vp N, --vad_speech_pad_ms N [%-7d] VAD speech padding (extend segments)\n", params.vad_speech_pad_ms); + fprintf(stderr, " -vo N, --vad_samples_overlap N [%-7.2f] VAD samples overlap (seconds between segments)\n", params.vad_samples_overlap); fprintf(stderr, "\n"); } From 3cff65876576dfeef11ba952e6fa9068f713da1f Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Mon, 12 May 2025 14:05:06 +0200 Subject: [PATCH 45/49] docs : add VAD section to README.md [no ci] This commit adds a VAD section to the README.md file, providing information about Voice Activity Detection (VAD) support. I've included the whisper-cli options mainly becuase adding them to the usage/help output would make the output a bit long and inconsistent as the other options are pretty short and concise. --- README.md | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/README.md b/README.md index c9aa82157b3..1c4bc68d0d1 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ High-performance inference of [OpenAI's Whisper](https://github.com/openai/whisp - [Ascend NPU Support](#ascend-npu-support) - [Moore Threads GPU Support](#moore-threads-gpu-support) - [C-style API](https://github.com/ggml-org/whisper.cpp/blob/master/include/whisper.h) +- [Voice Activity Detection (VAD)](#voice-activity-detection-vad) Supported platforms: @@ -732,6 +733,63 @@ let package = Package( ) ``` +### Voice Activity Detection (VAD) +Support for Voice Activity Detection (VAD) can be enabled using the `--vad` +argument to `whisper-cli`. In addition to this option a VAD model is also +required. + +The way this works is that first the audio samples are passed through +the VAD model which will detect speech segments. Using this information the +only the speech segments that are detected are extracted from the original audio +input and passed to whisper for processing. This reduces the amount of audio +data that needs to be processed by whisper and can significantly speed up the +transcription process. + +The following VAD models are currently supported: + +#### Silero-VAD +[Silero-vad](https://github.com/snakers4/silero-vad) is a lightweight VAD model +written in Python that is fast and accurate. + +This model can be converted to ggml using the following command: +```console +$ python3 -m venv venv && source venv/bin/activate +$ (venv) pip install silero-vad +$ (venv) $ python models/convert-silero-vad-to-ggml.py --output models/silero.bin +Saving GGML Silero-VAD model to models/silero-v5.1.2-ggml.bin +``` +And it can the be used with whisper as follows: +```console +$ ./build/bin/whisper-cli \ + --file ./samples/jfk.wav \ + --model ./models/ggml-base.en.bin \ + --vad \ + --vad-model ./models/for-tests-silero-v5.1.2-ggml.bin +``` + +#### VAD Options +* --vad-threshold: Threshold probability for speech detection. A probability +for a speech segment/frame above this threshold will be considered as speech. + +* --vad-min-speech-duration-ms: Minimum speech duration in milliseconds. Speech +segments shorter than this value will be discarded to filter out brief noise or +false positives. + +* --vad-min-silence-duration-ms: Minimum silence duration in milliseconds. Silence +periods must be at least this long to end a speech segment. Shorter silence +periods will be ignored and included as part of the speech. + +* --vad-max-speech-duration-s: Maximum speech duration in seconds. Speech segments +longer than this will be automatically split into multiple segments at silence +points exceeding 98ms to prevent excessively long segments. + +* --vad_speech_pad_ms: Speech padding in milliseconds. Adds this amount of padding +before and after each detected speech segment to avoid cutting off speech edges. + +* --vad_samples_overlap: Amount of audio to extend from each speech segment into +the next one, in seconds (e.g., 0.10 = 100ms overlap). This ensures speech isn't +cut off abruptly between segments when they're concatenated together. + ## Examples There are various examples of using the library for different projects in the [examples](examples) folder. From acc8747dfe48cc7facc609952b266e1ec351a1e9 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Mon, 12 May 2025 14:08:57 +0200 Subject: [PATCH 46/49] squash! docs : add VAD section to README.md [no ci] Fix vad model typo and spelling mistake. --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1c4bc68d0d1..5126c0a34ee 100644 --- a/README.md +++ b/README.md @@ -758,16 +758,17 @@ $ (venv) pip install silero-vad $ (venv) $ python models/convert-silero-vad-to-ggml.py --output models/silero.bin Saving GGML Silero-VAD model to models/silero-v5.1.2-ggml.bin ``` -And it can the be used with whisper as follows: +And it can then be used with whisper as follows: ```console $ ./build/bin/whisper-cli \ --file ./samples/jfk.wav \ --model ./models/ggml-base.en.bin \ --vad \ - --vad-model ./models/for-tests-silero-v5.1.2-ggml.bin + --vad-model ./models/silero-v5.1.2-ggml.bin ``` #### VAD Options + * --vad-threshold: Threshold probability for speech detection. A probability for a speech segment/frame above this threshold will be considered as speech. From 7aac6ecae2585e9d66e52f264a2ef4262a18e464 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Mon, 12 May 2025 16:46:08 +0300 Subject: [PATCH 47/49] vad : minor rename --- include/whisper.h | 6 ++--- src/whisper.cpp | 62 ++++++++++++++++++++++++----------------------- 2 files changed, 35 insertions(+), 33 deletions(-) diff --git a/include/whisper.h b/include/whisper.h index bfbb827be71..4aeda98f334 100644 --- a/include/whisper.h +++ b/include/whisper.h @@ -699,7 +699,7 @@ extern "C" { WHISPER_API struct whisper_vad_segments * whisper_vad_segments_from_probs( struct whisper_vad_context * vctx, - struct whisper_vad_params params); + struct whisper_vad_params params); WHISPER_API struct whisper_vad_segments * whisper_vad_segments_from_samples( struct whisper_vad_context * vctx, @@ -712,8 +712,8 @@ extern "C" { WHISPER_API float whisper_vad_segments_get_segment_t0(struct whisper_vad_segments * segments, int i_segment); WHISPER_API float whisper_vad_segments_get_segment_t1(struct whisper_vad_segments * segments, int i_segment); - WHISPER_API void whisper_vad_free_segments (struct whisper_vad_segments * segments); - WHISPER_API void whisper_vad_free (struct whisper_vad_context * ctx); + WHISPER_API void whisper_vad_free_segments(struct whisper_vad_segments * segments); + WHISPER_API void whisper_vad_free (struct whisper_vad_context * ctx); //////////////////////////////////////////////////////////////////////////// diff --git a/src/whisper.cpp b/src/whisper.cpp index 0ec5902727c..dcfdc992fed 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -4420,7 +4420,7 @@ struct whisper_vad_segment { }; struct whisper_vad_segments { - std::vector segments; + std::vector data; }; struct whisper_vad_context { @@ -5171,16 +5171,16 @@ bool whisper_vad_detect_speech( return true; } -int whisper_vad_segments_n_segments(struct whisper_vad_segments * timestamps) { - return timestamps->segments.size(); +int whisper_vad_segments_n_segments(struct whisper_vad_segments * segments) { + return segments->data.size(); } -float whisper_vad_segments_get_segment_t0(struct whisper_vad_segments * timestamps, int i_segment) { - return timestamps->segments[i_segment].start; +float whisper_vad_segments_get_segment_t0(struct whisper_vad_segments * segments, int i_segment) { + return segments->data[i_segment].start; } -float whisper_vad_segments_get_segment_t1(struct whisper_vad_segments * timestamps, int i_segment) { - return timestamps->segments[i_segment].end; +float whisper_vad_segments_get_segment_t1(struct whisper_vad_segments * segments, int i_segment) { + return segments->data[i_segment].end; } int whisper_vad_n_probs(struct whisper_vad_context * vctx) { @@ -5421,7 +5421,9 @@ struct whisper_vad_segments * whisper_vad_segments_from_probs( WHISPER_LOG_ERROR("%s: failed to allocate memory for whisper_vad_segments\n", __func__); return nullptr; } - vad_segments->segments = std::move(segments); + + vad_segments->data = std::move(segments); + return vad_segments; } @@ -5459,9 +5461,9 @@ void whisper_vad_free(whisper_vad_context * ctx) { } } -void whisper_vad_free_segments(whisper_vad_segments * timestamps) { - if (timestamps) { - delete timestamps; +void whisper_vad_free_segments(whisper_vad_segments * segments) { + if (segments) { + delete segments; } } @@ -6624,34 +6626,34 @@ static bool whisper_vad( whisper_vad_segments * vad_segments = whisper_vad_segments_from_samples(vctx, vad_params, samples, n_samples); - if (vad_segments->segments.size() > 0) { + if (vad_segments->data.size() > 0) { state->has_vad_segments = true; ctx->state->vad_segments.clear(); - ctx->state->vad_segments.reserve(vad_segments->segments.size()); + ctx->state->vad_segments.reserve(vad_segments->data.size()); - WHISPER_LOG_INFO("%s: detected %d speech segments\n", __func__, (int)vad_segments->segments.size()); + WHISPER_LOG_INFO("%s: detected %d speech segments\n", __func__, (int)vad_segments->data.size()); float overlap_seconds = vad_params.samples_overlap; int overlap_samples = overlap_seconds * WHISPER_SAMPLE_RATE; - for (int i = 0; i < (int)vad_segments->segments.size(); i++) { - int segment_start_samples = vad_segments->segments[i].start * WHISPER_SAMPLE_RATE; - int segment_end_samples = vad_segments->segments[i].end * WHISPER_SAMPLE_RATE; + for (int i = 0; i < (int)vad_segments->data.size(); i++) { + int segment_start_samples = vad_segments->data[i].start * WHISPER_SAMPLE_RATE; + int segment_end_samples = vad_segments->data[i].end * WHISPER_SAMPLE_RATE; - if (i < (int)vad_segments->segments.size() - 1) { + if (i < (int)vad_segments->data.size() - 1) { segment_end_samples += overlap_samples; } segment_end_samples = std::min(segment_end_samples, n_samples - 1); filtered_n_samples += (segment_end_samples - segment_start_samples); WHISPER_LOG_INFO("%s: Including segment %d: %.2f - %.2f (duration: %.2f)\n", - __func__, i, vad_segments->segments[i].start, - vad_segments->segments[i].end + (i < (int)vad_segments->segments.size() - 1 ? overlap_seconds : 0), - (vad_segments->segments[i].end - vad_segments->segments[i].start) + - (i < (int)vad_segments->segments.size() - 1 ? overlap_seconds : 0)); + __func__, i, vad_segments->data[i].start, + vad_segments->data[i].end + (i < (int)vad_segments->data.size() - 1 ? overlap_seconds : 0), + (vad_segments->data[i].end - vad_segments->data[i].start) + + (i < (int)vad_segments->data.size() - 1 ? overlap_seconds : 0)); } int silence_samples = 0.1 * WHISPER_SAMPLE_RATE; - int total_silence_samples = (vad_segments->segments.size() > 1) ? (vad_segments->segments.size() - 1) * silence_samples : 0; + int total_silence_samples = (vad_segments->data.size() > 1) ? (vad_segments->data.size() - 1) * silence_samples : 0; int total_samples_needed = filtered_n_samples + total_silence_samples; WHISPER_LOG_INFO("%s: total duration of speech segments: %.2f seconds\n", @@ -6667,11 +6669,11 @@ static bool whisper_vad( } int offset = 0; - for (int i = 0; i < (int)vad_segments->segments.size(); i++) { - int segment_start_samples = vad_segments->segments[i].start * WHISPER_SAMPLE_RATE; - int segment_end_samples = vad_segments->segments[i].end * WHISPER_SAMPLE_RATE; + for (int i = 0; i < (int)vad_segments->data.size(); i++) { + int segment_start_samples = vad_segments->data[i].start * WHISPER_SAMPLE_RATE; + int segment_end_samples = vad_segments->data[i].end * WHISPER_SAMPLE_RATE; - if (i < (int)vad_segments->segments.size() - 1) { + if (i < (int)vad_segments->data.size() - 1) { segment_end_samples += overlap_samples; } @@ -6682,8 +6684,8 @@ static bool whisper_vad( if (segment_length > 0) { whisper_state::vad_segment_info segment; - segment.orig_start = vad_segments->segments[i].start; - segment.orig_end = vad_segments->segments[i].end; + segment.orig_start = vad_segments->data[i].start; + segment.orig_end = vad_segments->data[i].end; segment.vad_start = offset / (float)WHISPER_SAMPLE_RATE; segment.vad_end = (offset + segment_length) / (float)WHISPER_SAMPLE_RATE; @@ -6697,7 +6699,7 @@ static bool whisper_vad( offset += segment_length; // Add silence after this segment (except after the last segment) - if (i < (int)vad_segments->segments.size() - 1) { + if (i < (int)vad_segments->data.size() - 1) { // Fill with zeros (silence) memset(filtered_samples.data() + offset, 0, silence_samples * sizeof(float)); offset += silence_samples; From 41c20100a7ae0a3b50346629be38a2fef9477ad0 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Mon, 12 May 2025 15:54:54 +0200 Subject: [PATCH 48/49] squash! docs : add VAD section to README.md [no ci] Change underscores to dashes in VAD options. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5126c0a34ee..d073fbccc5d 100644 --- a/README.md +++ b/README.md @@ -784,10 +784,10 @@ periods will be ignored and included as part of the speech. longer than this will be automatically split into multiple segments at silence points exceeding 98ms to prevent excessively long segments. -* --vad_speech_pad_ms: Speech padding in milliseconds. Adds this amount of padding +* --vad-speech-pad-ms: Speech padding in milliseconds. Adds this amount of padding before and after each detected speech segment to avoid cutting off speech edges. -* --vad_samples_overlap: Amount of audio to extend from each speech segment into +* --vad-samples-overlap: Amount of audio to extend from each speech segment into the next one, in seconds (e.g., 0.10 = 100ms overlap). This ensures speech isn't cut off abruptly between segments when they're concatenated together. From 67f0fd404347f2a27d19f79b8a17f62d58ebd809 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Mon, 12 May 2025 16:01:32 +0200 Subject: [PATCH 49/49] vad : fix cli option names [no ci] Use dashes instead of underscores for cli options. --- examples/cli/cli.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/cli/cli.cpp b/examples/cli/cli.cpp index 7cf1e3bf1bb..37b6ea63732 100644 --- a/examples/cli/cli.cpp +++ b/examples/cli/cli.cpp @@ -284,8 +284,8 @@ static void whisper_print_usage(int /*argc*/, char ** argv, const whisper_params fprintf(stderr, " -vmsd N, --vad-max-speech-duration-s N [%-7s] VAD max speech duration (auto-split longer)\n", params.vad_max_speech_duration_s == FLT_MAX ? std::string("FLT_MAX").c_str() : std::to_string(params.vad_max_speech_duration_s).c_str()); - fprintf(stderr, " -vp N, --vad_speech_pad_ms N [%-7d] VAD speech padding (extend segments)\n", params.vad_speech_pad_ms); - fprintf(stderr, " -vo N, --vad_samples_overlap N [%-7.2f] VAD samples overlap (seconds between segments)\n", params.vad_samples_overlap); + fprintf(stderr, " -vp N, --vad-speech-pad-ms N [%-7d] VAD speech padding (extend segments)\n", params.vad_speech_pad_ms); + fprintf(stderr, " -vo N, --vad-samples-overlap N [%-7.2f] VAD samples overlap (seconds between segments)\n", params.vad_samples_overlap); fprintf(stderr, "\n"); }