diff --git a/.gitignore b/.gitignore
index 43dcdabfb85..89b97607d51 100644
--- a/.gitignore
+++ b/.gitignore
@@ -60,3 +60,12 @@ cmake-build-debug/
.cxx/
.gradle/
local.properties
+
+models/*.bin
+models/*.xml
+models/openvino_conv_env
+ThirdParty
+bin/Output
+bin/tests
+*.user
+*.obj
\ No newline at end of file
diff --git a/bin/examples/bench/bench.vcxproj b/bin/examples/bench/bench.vcxproj
new file mode 100644
index 00000000000..ccee86eedf3
--- /dev/null
+++ b/bin/examples/bench/bench.vcxproj
@@ -0,0 +1,269 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {9F2AC4B4-161D-34FC-9E17-9A25D2EC9408}
+ Win32Proj
+ 10.0.17763.0
+ x64
+ bench
+ NoUpgrade
+
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ bench
+ .exe
+ true
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ bench
+ .exe
+ false
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ bench
+ .exe
+ false
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ bench
+ .exe
+ true
+ true
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ EnableFastChecks
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebug
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Debug"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Debug\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ whisper.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ true
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(Projectname).lib
+ $(IntDir)$(Projectname).pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8 /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Release"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Release\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ whisper.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ false
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(Projectname).lib
+ $(IntDir)$(Projectname).pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="MinSizeRel"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"MinSizeRel\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ whisper.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ false
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(Projectname).lib
+ $(IntDir)$(Projectname).pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="RelWithDebInfo"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"RelWithDebInfo\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ whisper.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ true
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(Projectname).lib
+ $(IntDir)$(Projectname).pdb
+ Console
+
+
+ false
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/examples/bench/bench.vcxproj.filters b/bin/examples/bench/bench.vcxproj.filters
new file mode 100644
index 00000000000..52b150ce856
--- /dev/null
+++ b/bin/examples/bench/bench.vcxproj.filters
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+ {DB262071-F966-34BF-BD40-232FB636F54E}
+
+
+
\ No newline at end of file
diff --git a/bin/examples/cmake_install.cmake b/bin/examples/cmake_install.cmake
new file mode 100644
index 00000000000..eb23d77d151
--- /dev/null
+++ b/bin/examples/cmake_install.cmake
@@ -0,0 +1,49 @@
+# Install script for directory: D:/Downloads/whisper.cpp/examples
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+ set(CMAKE_INSTALL_PREFIX "D:\Downloads\whisper.cpp\")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+ if(BUILD_TYPE)
+ string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+ CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+ else()
+ set(CMAKE_INSTALL_CONFIG_NAME "Release")
+ endif()
+ message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+ if(COMPONENT)
+ message(STATUS "Install component: \"${COMPONENT}\"")
+ set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+ else()
+ set(CMAKE_INSTALL_COMPONENT)
+ endif()
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+ set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+ # Include the install script for each subdirectory.
+ include("D:/Downloads/whisper.cpp/bin/examples/main/cmake_install.cmake")
+ include("D:/Downloads/whisper.cpp/bin/examples/stream/cmake_install.cmake")
+ include("D:/Downloads/whisper.cpp/bin/examples/server/cmake_install.cmake")
+ include("D:/Downloads/whisper.cpp/bin/examples/command/cmake_install.cmake")
+ include("D:/Downloads/whisper.cpp/bin/examples/bench/cmake_install.cmake")
+ include("D:/Downloads/whisper.cpp/bin/examples/quantize/cmake_install.cmake")
+ include("D:/Downloads/whisper.cpp/bin/examples/talk/cmake_install.cmake")
+ include("D:/Downloads/whisper.cpp/bin/examples/talk-llama/cmake_install.cmake")
+ include("D:/Downloads/whisper.cpp/bin/examples/lsp/cmake_install.cmake")
+ include("D:/Downloads/whisper.cpp/bin/examples/wchess/cmake_install.cmake")
+
+endif()
+
diff --git a/bin/examples/common.vcxproj b/bin/examples/common.vcxproj
new file mode 100644
index 00000000000..9f381579cf9
--- /dev/null
+++ b/bin/examples/common.vcxproj
@@ -0,0 +1,231 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {D000D8B4-CC11-3AE5-957C-6D25469323C8}
+ Win32Proj
+ 10.0.17763.0
+ x64
+ common
+ NoUpgrade
+
+
+
+ StaticLibrary
+ MultiByte
+ v141
+
+
+ StaticLibrary
+ MultiByte
+ v141
+
+
+ StaticLibrary
+ MultiByte
+ v141
+
+
+ StaticLibrary
+ MultiByte
+ v141
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ ..\Output\Lib\$(Configuration)\$(PlatformTarget)\
+ ..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ common
+ .lib
+ ..\Output\Lib\$(Configuration)\$(PlatformTarget)\
+ ..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ common
+ .lib
+ ..\Output\Lib\$(Configuration)\$(PlatformTarget)\
+ ..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ common
+ .lib
+ ..\Output\Lib\$(Configuration)\$(PlatformTarget)\
+ ..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ common
+ .lib
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ EnableFastChecks
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebug
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Debug"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Debug\"
+ ..\..\examples;..\..\;%(AdditionalIncludeDirectories)
+
+
+ ..\..\examples;..\..\;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8 /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Release"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Release\"
+ ..\..\examples;..\..\;%(AdditionalIncludeDirectories)
+
+
+ ..\..\examples;..\..\;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="MinSizeRel"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"MinSizeRel\"
+ ..\..\examples;..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\examples;..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="RelWithDebInfo"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"RelWithDebInfo\"
+ ..\..\examples;..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\examples;..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+
+
+
+
+
+
+
+
+
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2}
+ whisper
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/examples/common.vcxproj.filters b/bin/examples/common.vcxproj.filters
new file mode 100644
index 00000000000..e2339d83872
--- /dev/null
+++ b/bin/examples/common.vcxproj.filters
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {6EEB769A-D831-369C-875E-A259D60EB937}
+
+
+ {DB262071-F966-34BF-BD40-232FB636F54E}
+
+
+
\ No newline at end of file
diff --git a/bin/examples/cumain/cumain.vcxproj b/bin/examples/cumain/cumain.vcxproj
new file mode 100644
index 00000000000..bff5f3be4d3
--- /dev/null
+++ b/bin/examples/cumain/cumain.vcxproj
@@ -0,0 +1,293 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {DBE5D6DF-8A5B-4939-841E-185A4A0D426E}
+ Win32Proj
+ 10.0.17763.0
+ x64
+ cumain
+ NoUpgrade
+
+
+
+
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ main
+ .exe
+ true
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ main
+ .exe
+ false
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ main
+ .exe
+ false
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ main
+ .exe
+ true
+ true
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ EnableFastChecks
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebug
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Debug"
+ $(IntDir)
+
+
+ ..\..\..\
+ compute_50,sm_50;compute_60,sm_60;compute_70,sm_70;compute_80,sm_80;compute_90,sm_90
+ $(IntDir)\%(Filename)%(Extension).obj
+
+
+ %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Debug\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ cudart.lib;cuda.lib;cublas.lib;common.lib;whisper.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;$(CUDA_PATH)\lib\x64;..\ThirdParty\CLBlast\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ true
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8 /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Release"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Release\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ false
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+ false
+
+
+ $(IntDir)\%(Filename)%(Extension).obj
+ ..\..\..\
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="MinSizeRel"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"MinSizeRel\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ false
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+ false
+
+
+ $(IntDir)\%(Filename)%(Extension).obj
+ ..\..\..\
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="RelWithDebInfo"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"RelWithDebInfo\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ true
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+ false
+
+
+ $(IntDir)\%(Filename)%(Extension).obj
+ ..\..\..\
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/examples/main/main.vcxproj b/bin/examples/main/main.vcxproj
new file mode 100644
index 00000000000..b249aefcebf
--- /dev/null
+++ b/bin/examples/main/main.vcxproj
@@ -0,0 +1,270 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {2A099279-C1AD-3B21-9BFF-2C72C7091BA4}
+ Win32Proj
+ 10.0.17763.0
+ x64
+ main
+ NoUpgrade
+
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ main
+ .exe
+ true
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ main
+ .exe
+ false
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ main
+ .exe
+ false
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ main
+ .exe
+ true
+ true
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ EnableFastChecks
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebug
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Debug"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Debug\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ true
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8 /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Release"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Release\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ false
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="MinSizeRel"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"MinSizeRel\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ false
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="RelWithDebInfo"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"RelWithDebInfo\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ true
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/examples/main/main.vcxproj.filters b/bin/examples/main/main.vcxproj.filters
new file mode 100644
index 00000000000..6c9256570e8
--- /dev/null
+++ b/bin/examples/main/main.vcxproj.filters
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+ {DB262071-F966-34BF-BD40-232FB636F54E}
+
+
+
\ No newline at end of file
diff --git a/bin/examples/mystream/mystream.vcxproj b/bin/examples/mystream/mystream.vcxproj
new file mode 100644
index 00000000000..9b63e3e0979
--- /dev/null
+++ b/bin/examples/mystream/mystream.vcxproj
@@ -0,0 +1,271 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {BCEDCD6C-221E-4FC2-94C4-5ABC8919CBB1}
+ Win32Proj
+ 10.0.17763.0
+ x64
+ mystream
+ NoUpgrade
+
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ stream
+ .exe
+ true
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ stream2
+ .exe
+ false
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ stream
+ .exe
+ false
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ stream
+ .exe
+ true
+ true
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;$(SolutionDir)..\ThirdParty\SDL\include\SDL3;$(SolutionDir)..\ThirdParty\SDL\include;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ EnableFastChecks
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebug
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Debug"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Debug\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;sdl2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;$(SolutionDir)..\ThirdParty\SDL\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ true
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;$(SolutionDir)..\ThirdParty\SDL\include\SDL3;$(SolutionDir)..\ThirdParty\SDL\include;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8 /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Release"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Release\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;sdl2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;$(SolutionDir)..\ThirdParty\SDL\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ false
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;$(SolutionDir)..\ThirdParty\SDL\include\SDL3;$(SolutionDir)..\ThirdParty\SDL\include;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="MinSizeRel"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"MinSizeRel\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;sdl2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;$(SolutionDir)..\ThirdParty\SDL\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ false
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;$(SolutionDir)..\ThirdParty\SDL\include\SDL3;$(SolutionDir)..\ThirdParty\SDL\include;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="RelWithDebInfo"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"RelWithDebInfo\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;sdl2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;$(SolutionDir)..\ThirdParty\SDL\Lib\Release\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ true
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/examples/mytest/mytest.vcxproj b/bin/examples/mytest/mytest.vcxproj
new file mode 100644
index 00000000000..b013d94d6d5
--- /dev/null
+++ b/bin/examples/mytest/mytest.vcxproj
@@ -0,0 +1,267 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {6B6C108A-76BC-4F12-904D-46FD3CAE17F1}
+ Win32Proj
+ 10.0.17763.0
+ x64
+ mytest
+ NoUpgrade
+
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ mytest
+ .exe
+ true
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ mytest
+ .exe
+ false
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ mytest
+ .exe
+ false
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ mytest
+ .exe
+ true
+ true
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ EnableFastChecks
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebug
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Debug"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Debug\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ true
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8 /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Release"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Release\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ false
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="MinSizeRel"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"MinSizeRel\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ false
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="RelWithDebInfo"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"RelWithDebInfo\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ true
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+ false
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/examples/mytest/mytest.vcxproj.filters b/bin/examples/mytest/mytest.vcxproj.filters
new file mode 100644
index 00000000000..534c564e8ac
--- /dev/null
+++ b/bin/examples/mytest/mytest.vcxproj.filters
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+ {DB262071-F966-34BF-BD40-232FB636F54E}
+
+
+
\ No newline at end of file
diff --git a/bin/examples/quantize/quantize.vcxproj b/bin/examples/quantize/quantize.vcxproj
new file mode 100644
index 00000000000..95a56376331
--- /dev/null
+++ b/bin/examples/quantize/quantize.vcxproj
@@ -0,0 +1,347 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {AB2B98C3-4597-3121-BC14-F281281A28F0}
+ Win32Proj
+ 10.0.17763.0
+ x64
+ quantize
+ NoUpgrade
+
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ quantize
+ .exe
+ true
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ quantize
+ .exe
+ false
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ quantize
+ .exe
+ false
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ quantize
+ .exe
+ true
+ true
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ EnableFastChecks
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebug
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Debug"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Debug\"
+ D:\Downloads\whisper.cpp\examples;D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+
+
+ D:\Downloads\whisper.cpp\examples;D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ true
+ %(IgnoreSpecificDefaultLibraries)
+ D:/Downloads/whisper.cpp/bin/examples/quantize/Debug/quantize.lib
+ D:/Downloads/whisper.cpp/bin/bin/Debug/quantize.pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8 /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Release"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Release\"
+ D:\Downloads\whisper.cpp\examples;D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+
+
+ D:\Downloads\whisper.cpp\examples;D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ false
+ %(IgnoreSpecificDefaultLibraries)
+ D:/Downloads/whisper.cpp/bin/examples/quantize/Release/quantize.lib
+ D:/Downloads/whisper.cpp/bin/bin/Release/quantize.pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="MinSizeRel"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"MinSizeRel\"
+ D:\Downloads\whisper.cpp\examples;D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+
+
+ D:\Downloads\whisper.cpp\examples;D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ false
+ %(IgnoreSpecificDefaultLibraries)
+ D:/Downloads/whisper.cpp/bin/examples/quantize/MinSizeRel/quantize.lib
+ D:/Downloads/whisper.cpp/bin/bin/MinSizeRel/quantize.pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="RelWithDebInfo"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"RelWithDebInfo\"
+ D:\Downloads\whisper.cpp\examples;D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+
+
+ D:\Downloads\whisper.cpp\examples;D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ true
+ %(IgnoreSpecificDefaultLibraries)
+ D:/Downloads/whisper.cpp/bin/examples/quantize/RelWithDebInfo/quantize.lib
+ D:/Downloads/whisper.cpp/bin/bin/RelWithDebInfo/quantize.pdb
+ Console
+
+
+ false
+
+
+
+
+ Building Custom Rule D:/Downloads/whisper.cpp/examples/quantize/CMakeLists.txt
+ setlocal
+"D:\Program Files\CMake\bin\cmake.exe" -SD:/Downloads/whisper.cpp -BD:/Downloads/whisper.cpp/bin --check-stamp-file D:/Downloads/whisper.cpp/bin/examples/quantize/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ D:\Downloads\whisper.cpp\cmake\DefaultTargetOptions.cmake;%(AdditionalInputs)
+ D:\Downloads\whisper.cpp\bin\examples\quantize\CMakeFiles\generate.stamp
+ false
+ Building Custom Rule D:/Downloads/whisper.cpp/examples/quantize/CMakeLists.txt
+ setlocal
+"D:\Program Files\CMake\bin\cmake.exe" -SD:/Downloads/whisper.cpp -BD:/Downloads/whisper.cpp/bin --check-stamp-file D:/Downloads/whisper.cpp/bin/examples/quantize/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ D:\Downloads\whisper.cpp\cmake\DefaultTargetOptions.cmake;%(AdditionalInputs)
+ D:\Downloads\whisper.cpp\bin\examples\quantize\CMakeFiles\generate.stamp
+ false
+ Building Custom Rule D:/Downloads/whisper.cpp/examples/quantize/CMakeLists.txt
+ setlocal
+"D:\Program Files\CMake\bin\cmake.exe" -SD:/Downloads/whisper.cpp -BD:/Downloads/whisper.cpp/bin --check-stamp-file D:/Downloads/whisper.cpp/bin/examples/quantize/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ D:\Downloads\whisper.cpp\cmake\DefaultTargetOptions.cmake;%(AdditionalInputs)
+ D:\Downloads\whisper.cpp\bin\examples\quantize\CMakeFiles\generate.stamp
+ false
+ Building Custom Rule D:/Downloads/whisper.cpp/examples/quantize/CMakeLists.txt
+ setlocal
+"D:\Program Files\CMake\bin\cmake.exe" -SD:/Downloads/whisper.cpp -BD:/Downloads/whisper.cpp/bin --check-stamp-file D:/Downloads/whisper.cpp/bin/examples/quantize/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ D:\Downloads\whisper.cpp\cmake\DefaultTargetOptions.cmake;%(AdditionalInputs)
+ D:\Downloads\whisper.cpp\bin\examples\quantize\CMakeFiles\generate.stamp
+ false
+
+
+
+
+
+
+
+ {F6A4A9EC-087A-3BCC-A6A4-F27FC1593276}
+ ZERO_CHECK
+ false
+ Never
+
+
+ {D000D8B4-CC11-3AE5-957C-6D25469323C8}
+ common
+
+
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2}
+ whisper
+
+
+ {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}
+ whisper.openvino
+ false
+ Never
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/examples/quantize/quantize.vcxproj.filters b/bin/examples/quantize/quantize.vcxproj.filters
new file mode 100644
index 00000000000..cedeaef62a6
--- /dev/null
+++ b/bin/examples/quantize/quantize.vcxproj.filters
@@ -0,0 +1,16 @@
+
+
+
+
+ Source Files
+
+
+
+
+
+
+
+ {DB262071-F966-34BF-BD40-232FB636F54E}
+
+
+
diff --git a/bin/examples/server/server.vcxproj b/bin/examples/server/server.vcxproj
new file mode 100644
index 00000000000..5ddfa107a06
--- /dev/null
+++ b/bin/examples/server/server.vcxproj
@@ -0,0 +1,349 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {582824FF-1A8F-3E12-A5EE-D91772D66B08}
+ Win32Proj
+ 10.0.17763.0
+ x64
+ server
+ NoUpgrade
+
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ server
+ .exe
+ true
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ server
+ .exe
+ false
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ server
+ .exe
+ false
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ server
+ .exe
+ true
+ true
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ EnableFastChecks
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebugDLL
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Debug"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Debug\"
+ D:\Downloads\whisper.cpp\examples;D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+
+
+ D:\Downloads\whisper.cpp\examples;D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ true
+ %(IgnoreSpecificDefaultLibraries)
+ D:/Downloads/whisper.cpp/bin/examples/server/Debug/server.lib
+ D:/Downloads/whisper.cpp/bin/bin/Debug/server.pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8 /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Release"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Release\"
+ D:\Downloads\whisper.cpp\examples;D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+
+
+ D:\Downloads\whisper.cpp\examples;D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ false
+ %(IgnoreSpecificDefaultLibraries)
+ D:/Downloads/whisper.cpp/bin/examples/server/Release/server.lib
+ D:/Downloads/whisper.cpp/bin/bin/Release/server.pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreadedDLL
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="MinSizeRel"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"MinSizeRel\"
+ D:\Downloads\whisper.cpp\examples;D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+
+
+ D:\Downloads\whisper.cpp\examples;D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ false
+ %(IgnoreSpecificDefaultLibraries)
+ D:/Downloads/whisper.cpp/bin/examples/server/MinSizeRel/server.lib
+ D:/Downloads/whisper.cpp/bin/bin/MinSizeRel/server.pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreadedDLL
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="RelWithDebInfo"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"RelWithDebInfo\"
+ D:\Downloads\whisper.cpp\examples;D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+
+
+ D:\Downloads\whisper.cpp\examples;D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ true
+ %(IgnoreSpecificDefaultLibraries)
+ D:/Downloads/whisper.cpp/bin/examples/server/RelWithDebInfo/server.lib
+ D:/Downloads/whisper.cpp/bin/bin/RelWithDebInfo/server.pdb
+ Console
+
+
+ false
+
+
+
+
+ Building Custom Rule D:/Downloads/whisper.cpp/examples/server/CMakeLists.txt
+ setlocal
+"D:\Program Files\CMake\bin\cmake.exe" -SD:/Downloads/whisper.cpp -BD:/Downloads/whisper.cpp/bin --check-stamp-file D:/Downloads/whisper.cpp/bin/examples/server/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ D:\Downloads\whisper.cpp\cmake\DefaultTargetOptions.cmake;%(AdditionalInputs)
+ D:\Downloads\whisper.cpp\bin\examples\server\CMakeFiles\generate.stamp
+ false
+ Building Custom Rule D:/Downloads/whisper.cpp/examples/server/CMakeLists.txt
+ setlocal
+"D:\Program Files\CMake\bin\cmake.exe" -SD:/Downloads/whisper.cpp -BD:/Downloads/whisper.cpp/bin --check-stamp-file D:/Downloads/whisper.cpp/bin/examples/server/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ D:\Downloads\whisper.cpp\cmake\DefaultTargetOptions.cmake;%(AdditionalInputs)
+ D:\Downloads\whisper.cpp\bin\examples\server\CMakeFiles\generate.stamp
+ false
+ Building Custom Rule D:/Downloads/whisper.cpp/examples/server/CMakeLists.txt
+ setlocal
+"D:\Program Files\CMake\bin\cmake.exe" -SD:/Downloads/whisper.cpp -BD:/Downloads/whisper.cpp/bin --check-stamp-file D:/Downloads/whisper.cpp/bin/examples/server/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ D:\Downloads\whisper.cpp\cmake\DefaultTargetOptions.cmake;%(AdditionalInputs)
+ D:\Downloads\whisper.cpp\bin\examples\server\CMakeFiles\generate.stamp
+ false
+ Building Custom Rule D:/Downloads/whisper.cpp/examples/server/CMakeLists.txt
+ setlocal
+"D:\Program Files\CMake\bin\cmake.exe" -SD:/Downloads/whisper.cpp -BD:/Downloads/whisper.cpp/bin --check-stamp-file D:/Downloads/whisper.cpp/bin/examples/server/CMakeFiles/generate.stamp
+if %errorlevel% neq 0 goto :cmEnd
+:cmEnd
+endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
+:cmErrorLevel
+exit /b %1
+:cmDone
+if %errorlevel% neq 0 goto :VCEnd
+ D:\Downloads\whisper.cpp\cmake\DefaultTargetOptions.cmake;%(AdditionalInputs)
+ D:\Downloads\whisper.cpp\bin\examples\server\CMakeFiles\generate.stamp
+ false
+
+
+
+
+
+
+
+
+
+ {F6A4A9EC-087A-3BCC-A6A4-F27FC1593276}
+ ZERO_CHECK
+ false
+ Never
+
+
+ {D000D8B4-CC11-3AE5-957C-6D25469323C8}
+ common
+
+
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2}
+ whisper
+
+
+ {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}
+ whisper.openvino
+ false
+ Never
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/examples/server/server.vcxproj.filters b/bin/examples/server/server.vcxproj.filters
new file mode 100644
index 00000000000..0b646c95ffa
--- /dev/null
+++ b/bin/examples/server/server.vcxproj.filters
@@ -0,0 +1,27 @@
+
+
+
+
+ Source Files
+
+
+
+
+ Header Files
+
+
+ Header Files
+
+
+
+
+
+
+
+ {6EEB769A-D831-369C-875E-A259D60EB937}
+
+
+ {DB262071-F966-34BF-BD40-232FB636F54E}
+
+
+
diff --git a/bin/examples/stream/stream.vcxproj b/bin/examples/stream/stream.vcxproj
new file mode 100644
index 00000000000..d5fc421b2e9
--- /dev/null
+++ b/bin/examples/stream/stream.vcxproj
@@ -0,0 +1,271 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {9FB08AEC-D659-4C97-9A13-24FDFE51A5A9}
+ Win32Proj
+ 10.0.17763.0
+ x64
+ stream
+ NoUpgrade
+
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+ Application
+ MultiByte
+ v141
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ stream
+ .exe
+ true
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ stream
+ .exe
+ false
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ stream
+ .exe
+ false
+ true
+ ..\..\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ ..\..\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ stream
+ .exe
+ true
+ true
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;$(SolutionDir)..\ThirdParty\SDL\include\SDL3;$(SolutionDir)..\ThirdParty\SDL\include;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ EnableFastChecks
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebug
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;SDL_MAIN_HANDLED;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Debug"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Debug\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;sdl2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;$(SolutionDir)..\ThirdParty\SDL\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ true
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;$(SolutionDir)..\ThirdParty\SDL\include\SDL3;$(SolutionDir)..\ThirdParty\SDL\include;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8 /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;SDL_MAIN_HANDLED;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="Release"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"Release\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;sdl2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;$(SolutionDir)..\ThirdParty\SDL\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ false
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;$(SolutionDir)..\ThirdParty\SDL\include\SDL3;$(SolutionDir)..\ThirdParty\SDL\include;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;SDL_MAIN_HANDLED;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="MinSizeRel"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"MinSizeRel\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;sdl2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;$(SolutionDir)..\ThirdParty\SDL\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ false
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\examples;$(SolutionDir)..\;$(SolutionDir)..\ThirdParty\SDL\include\SDL3;$(SolutionDir)..\ThirdParty\SDL\include;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;SDL_MAIN_HANDLED;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR="RelWithDebInfo"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;CMAKE_INTDIR=\"RelWithDebInfo\"
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\..\..\examples;..\..\..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ common.lib;whisper.lib;sdl2.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib
+ $(OutDir);$(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;$(SolutionDir)..\ThirdParty\SDL\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ %(AdditionalOptions) /machine:x64
+ true
+ %(IgnoreSpecificDefaultLibraries)
+ $(IntDir)$(ProjectName).lib
+ $(IntDir)$(ProjectName).pdb
+ Console
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/whisper.clblast.vcxproj b/bin/whisper.clblast.vcxproj
new file mode 100644
index 00000000000..c42b4c65e43
--- /dev/null
+++ b/bin/whisper.clblast.vcxproj
@@ -0,0 +1,251 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {80BDE424-787A-46AF-A7FF-1C5E66774126}
+ Win32Proj
+ 10.0.17763.0
+ x64
+ whisper.clblast
+ NoUpgrade
+
+
+
+ DynamicLibrary
+ MultiByte
+ v141
+
+
+ DynamicLibrary
+ MultiByte
+ v141
+
+
+ DynamicLibrary
+ MultiByte
+ v141
+
+
+ DynamicLibrary
+ MultiByte
+ v141
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ .\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper.clblast
+ .\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper.clblast
+ .dll
+ .\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper.clblast
+ .dll
+ .\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper.clblast
+ .dll
+
+
+
+ $(SolutionDir)..\;..\ThirdParty\ClBlast\include;$(CUDA_PATH)\Include;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ EnableFastChecks
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebug
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;CLBLAST_DLL;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR="Debug"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR=\"Debug\"
+ ..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+ opencl.lib;clblast.lib;whisper.lib;%(AdditionalDependencies)
+ ..\external\whisper-clblast.def
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;$(CUDA_PATH)\lib\x64;..\ThirdParty\CLBlast\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+
+
+
+
+ $(SolutionDir)..\;..\ThirdParty\ClBlast\include;$(CUDA_PATH)\Include;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8 /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;CLBLAST_DLL;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR="Release"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR=\"Release\"
+ ..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+ ..\external\whisper-clblast.def
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;$(CUDA_PATH)\lib\x64;..\ThirdParty\CLBlast\Lib\Release\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ opencl.lib;clblast.lib;whisper.lib;%(AdditionalDependencies)
+
+
+
+
+ $(SolutionDir)..\;..\ThirdParty\ClBlast\include;$(CUDA_PATH)\Include;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;CLBLAST_DLL;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR="MinSizeRel"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR=\"MinSizeRel\"
+ ..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+ ..\external\whisper-clblast.def
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;$(CUDA_PATH)\lib\x64;..\ThirdParty\CLBlast\Lib\Release\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ opencl.lib;clblast.lib;whisper.lib;%(AdditionalDependencies)
+
+
+
+
+ $(SolutionDir)..\;..\ThirdParty\ClBlast\include;$(CUDA_PATH)\Include;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;CLBLAST_DLL;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR="RelWithDebInfo"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR=\"RelWithDebInfo\"
+ ..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+ ..\external\whisper-clblast.def
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;$(CUDA_PATH)\lib\x64;..\ThirdParty\CLBlast\Lib\Release\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ opencl.lib;clblast.lib;whisper.lib;%(AdditionalDependencies)
+
+
+
+
+
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/whisper.cpp.sln b/bin/whisper.cpp.sln
new file mode 100644
index 00000000000..d9e1f7e4680
--- /dev/null
+++ b/bin/whisper.cpp.sln
@@ -0,0 +1,198 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.28307.1267
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bench", "examples\bench\bench.vcxproj", "{9F2AC4B4-161D-34FC-9E17-9A25D2EC9408}"
+ ProjectSection(ProjectDependencies) = postProject
+ {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12} = {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2} = {41EE176F-DA47-304E-BBF3-1441873DD2B2}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "examples\common.vcxproj", "{D000D8B4-CC11-3AE5-957C-6D25469323C8}"
+ ProjectSection(ProjectDependencies) = postProject
+ {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12} = {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2} = {41EE176F-DA47-304E-BBF3-1441873DD2B2}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "main", "examples\main\main.vcxproj", "{2A099279-C1AD-3B21-9BFF-2C72C7091BA4}"
+ ProjectSection(ProjectDependencies) = postProject
+ {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12} = {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2} = {41EE176F-DA47-304E-BBF3-1441873DD2B2}
+ {D000D8B4-CC11-3AE5-957C-6D25469323C8} = {D000D8B4-CC11-3AE5-957C-6D25469323C8}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "quantize", "examples\quantize\quantize.vcxproj", "{AB2B98C3-4597-3121-BC14-F281281A28F0}"
+ ProjectSection(ProjectDependencies) = postProject
+ {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12} = {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2} = {41EE176F-DA47-304E-BBF3-1441873DD2B2}
+ {D000D8B4-CC11-3AE5-957C-6D25469323C8} = {D000D8B4-CC11-3AE5-957C-6D25469323C8}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "server", "examples\server\server.vcxproj", "{582824FF-1A8F-3E12-A5EE-D91772D66B08}"
+ ProjectSection(ProjectDependencies) = postProject
+ {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12} = {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2} = {41EE176F-DA47-304E-BBF3-1441873DD2B2}
+ {D000D8B4-CC11-3AE5-957C-6D25469323C8} = {D000D8B4-CC11-3AE5-957C-6D25469323C8}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "whisper", "whisper.vcxproj", "{41EE176F-DA47-304E-BBF3-1441873DD2B2}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "whisper.openvino", "whisper.openvino.vcxproj", "{226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}"
+ ProjectSection(ProjectDependencies) = postProject
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2} = {41EE176F-DA47-304E-BBF3-1441873DD2B2}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "whisper.clblast", "whisper.clblast.vcxproj", "{80BDE424-787A-46AF-A7FF-1C5E66774126}"
+ ProjectSection(ProjectDependencies) = postProject
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2} = {41EE176F-DA47-304E-BBF3-1441873DD2B2}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "whisper.cuda", "whisper.cuda.vcxproj", "{E8037DF6-3F31-4B79-A50E-5C31B54187F2}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stream", "examples\stream\stream.vcxproj", "{9FB08AEC-D659-4C97-9A13-24FDFE51A5A9}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "whisper.dll", "whisper.dll.vcxproj", "{BBA5D805-9B22-47A1-B22B-7F570FB723D1}"
+ ProjectSection(ProjectDependencies) = postProject
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2} = {41EE176F-DA47-304E-BBF3-1441873DD2B2}
+ {D000D8B4-CC11-3AE5-957C-6D25469323C8} = {D000D8B4-CC11-3AE5-957C-6D25469323C8}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mytest", "examples\mytest\mytest.vcxproj", "{6B6C108A-76BC-4F12-904D-46FD3CAE17F1}"
+ ProjectSection(ProjectDependencies) = postProject
+ {BBA5D805-9B22-47A1-B22B-7F570FB723D1} = {BBA5D805-9B22-47A1-B22B-7F570FB723D1}
+ {D000D8B4-CC11-3AE5-957C-6D25469323C8} = {D000D8B4-CC11-3AE5-957C-6D25469323C8}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mystream", "examples\mystream\mystream.vcxproj", "{BCEDCD6C-221E-4FC2-94C4-5ABC8919CBB1}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cumain", "examples\cumain\cumain.vcxproj", "{DBE5D6DF-8A5B-4939-841E-185A4A0D426E}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ MinSizeRel|x64 = MinSizeRel|x64
+ Release|x64 = Release|x64
+ RelWithDebInfo|x64 = RelWithDebInfo|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {9F2AC4B4-161D-34FC-9E17-9A25D2EC9408}.Debug|x64.ActiveCfg = Debug|x64
+ {9F2AC4B4-161D-34FC-9E17-9A25D2EC9408}.Debug|x64.Build.0 = Debug|x64
+ {9F2AC4B4-161D-34FC-9E17-9A25D2EC9408}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {9F2AC4B4-161D-34FC-9E17-9A25D2EC9408}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {9F2AC4B4-161D-34FC-9E17-9A25D2EC9408}.Release|x64.ActiveCfg = Release|x64
+ {9F2AC4B4-161D-34FC-9E17-9A25D2EC9408}.Release|x64.Build.0 = Release|x64
+ {9F2AC4B4-161D-34FC-9E17-9A25D2EC9408}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {9F2AC4B4-161D-34FC-9E17-9A25D2EC9408}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {D000D8B4-CC11-3AE5-957C-6D25469323C8}.Debug|x64.ActiveCfg = Debug|x64
+ {D000D8B4-CC11-3AE5-957C-6D25469323C8}.Debug|x64.Build.0 = Debug|x64
+ {D000D8B4-CC11-3AE5-957C-6D25469323C8}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {D000D8B4-CC11-3AE5-957C-6D25469323C8}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {D000D8B4-CC11-3AE5-957C-6D25469323C8}.Release|x64.ActiveCfg = Release|x64
+ {D000D8B4-CC11-3AE5-957C-6D25469323C8}.Release|x64.Build.0 = Release|x64
+ {D000D8B4-CC11-3AE5-957C-6D25469323C8}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {D000D8B4-CC11-3AE5-957C-6D25469323C8}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {2A099279-C1AD-3B21-9BFF-2C72C7091BA4}.Debug|x64.ActiveCfg = Debug|x64
+ {2A099279-C1AD-3B21-9BFF-2C72C7091BA4}.Debug|x64.Build.0 = Debug|x64
+ {2A099279-C1AD-3B21-9BFF-2C72C7091BA4}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {2A099279-C1AD-3B21-9BFF-2C72C7091BA4}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {2A099279-C1AD-3B21-9BFF-2C72C7091BA4}.Release|x64.ActiveCfg = Release|x64
+ {2A099279-C1AD-3B21-9BFF-2C72C7091BA4}.Release|x64.Build.0 = Release|x64
+ {2A099279-C1AD-3B21-9BFF-2C72C7091BA4}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {2A099279-C1AD-3B21-9BFF-2C72C7091BA4}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {AB2B98C3-4597-3121-BC14-F281281A28F0}.Debug|x64.ActiveCfg = Debug|x64
+ {AB2B98C3-4597-3121-BC14-F281281A28F0}.Debug|x64.Build.0 = Debug|x64
+ {AB2B98C3-4597-3121-BC14-F281281A28F0}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {AB2B98C3-4597-3121-BC14-F281281A28F0}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {AB2B98C3-4597-3121-BC14-F281281A28F0}.Release|x64.ActiveCfg = Release|x64
+ {AB2B98C3-4597-3121-BC14-F281281A28F0}.Release|x64.Build.0 = Release|x64
+ {AB2B98C3-4597-3121-BC14-F281281A28F0}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {AB2B98C3-4597-3121-BC14-F281281A28F0}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {582824FF-1A8F-3E12-A5EE-D91772D66B08}.Debug|x64.ActiveCfg = Debug|x64
+ {582824FF-1A8F-3E12-A5EE-D91772D66B08}.Debug|x64.Build.0 = Debug|x64
+ {582824FF-1A8F-3E12-A5EE-D91772D66B08}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {582824FF-1A8F-3E12-A5EE-D91772D66B08}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {582824FF-1A8F-3E12-A5EE-D91772D66B08}.Release|x64.ActiveCfg = Release|x64
+ {582824FF-1A8F-3E12-A5EE-D91772D66B08}.Release|x64.Build.0 = Release|x64
+ {582824FF-1A8F-3E12-A5EE-D91772D66B08}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {582824FF-1A8F-3E12-A5EE-D91772D66B08}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2}.Debug|x64.ActiveCfg = Debug|x64
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2}.Debug|x64.Build.0 = Debug|x64
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2}.Release|x64.ActiveCfg = Release|x64
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2}.Release|x64.Build.0 = Release|x64
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}.Debug|x64.ActiveCfg = Debug|x64
+ {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}.Debug|x64.Build.0 = Debug|x64
+ {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}.Release|x64.ActiveCfg = Release|x64
+ {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}.Release|x64.Build.0 = Release|x64
+ {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {80BDE424-787A-46AF-A7FF-1C5E66774126}.Debug|x64.ActiveCfg = Debug|x64
+ {80BDE424-787A-46AF-A7FF-1C5E66774126}.Debug|x64.Build.0 = Debug|x64
+ {80BDE424-787A-46AF-A7FF-1C5E66774126}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {80BDE424-787A-46AF-A7FF-1C5E66774126}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {80BDE424-787A-46AF-A7FF-1C5E66774126}.Release|x64.ActiveCfg = Release|x64
+ {80BDE424-787A-46AF-A7FF-1C5E66774126}.Release|x64.Build.0 = Release|x64
+ {80BDE424-787A-46AF-A7FF-1C5E66774126}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {80BDE424-787A-46AF-A7FF-1C5E66774126}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {E8037DF6-3F31-4B79-A50E-5C31B54187F2}.Debug|x64.ActiveCfg = Debug|x64
+ {E8037DF6-3F31-4B79-A50E-5C31B54187F2}.Debug|x64.Build.0 = Debug|x64
+ {E8037DF6-3F31-4B79-A50E-5C31B54187F2}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {E8037DF6-3F31-4B79-A50E-5C31B54187F2}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {E8037DF6-3F31-4B79-A50E-5C31B54187F2}.Release|x64.ActiveCfg = Release|x64
+ {E8037DF6-3F31-4B79-A50E-5C31B54187F2}.Release|x64.Build.0 = Release|x64
+ {E8037DF6-3F31-4B79-A50E-5C31B54187F2}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {E8037DF6-3F31-4B79-A50E-5C31B54187F2}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {9FB08AEC-D659-4C97-9A13-24FDFE51A5A9}.Debug|x64.ActiveCfg = Debug|x64
+ {9FB08AEC-D659-4C97-9A13-24FDFE51A5A9}.Debug|x64.Build.0 = Debug|x64
+ {9FB08AEC-D659-4C97-9A13-24FDFE51A5A9}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {9FB08AEC-D659-4C97-9A13-24FDFE51A5A9}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {9FB08AEC-D659-4C97-9A13-24FDFE51A5A9}.Release|x64.ActiveCfg = Release|x64
+ {9FB08AEC-D659-4C97-9A13-24FDFE51A5A9}.Release|x64.Build.0 = Release|x64
+ {9FB08AEC-D659-4C97-9A13-24FDFE51A5A9}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {9FB08AEC-D659-4C97-9A13-24FDFE51A5A9}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {BBA5D805-9B22-47A1-B22B-7F570FB723D1}.Debug|x64.ActiveCfg = Debug|x64
+ {BBA5D805-9B22-47A1-B22B-7F570FB723D1}.Debug|x64.Build.0 = Debug|x64
+ {BBA5D805-9B22-47A1-B22B-7F570FB723D1}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {BBA5D805-9B22-47A1-B22B-7F570FB723D1}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {BBA5D805-9B22-47A1-B22B-7F570FB723D1}.Release|x64.ActiveCfg = Release|x64
+ {BBA5D805-9B22-47A1-B22B-7F570FB723D1}.Release|x64.Build.0 = Release|x64
+ {BBA5D805-9B22-47A1-B22B-7F570FB723D1}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {BBA5D805-9B22-47A1-B22B-7F570FB723D1}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {6B6C108A-76BC-4F12-904D-46FD3CAE17F1}.Debug|x64.ActiveCfg = Debug|x64
+ {6B6C108A-76BC-4F12-904D-46FD3CAE17F1}.Debug|x64.Build.0 = Debug|x64
+ {6B6C108A-76BC-4F12-904D-46FD3CAE17F1}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {6B6C108A-76BC-4F12-904D-46FD3CAE17F1}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {6B6C108A-76BC-4F12-904D-46FD3CAE17F1}.Release|x64.ActiveCfg = Release|x64
+ {6B6C108A-76BC-4F12-904D-46FD3CAE17F1}.Release|x64.Build.0 = Release|x64
+ {6B6C108A-76BC-4F12-904D-46FD3CAE17F1}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {6B6C108A-76BC-4F12-904D-46FD3CAE17F1}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {BCEDCD6C-221E-4FC2-94C4-5ABC8919CBB1}.Debug|x64.ActiveCfg = Debug|x64
+ {BCEDCD6C-221E-4FC2-94C4-5ABC8919CBB1}.Debug|x64.Build.0 = Debug|x64
+ {BCEDCD6C-221E-4FC2-94C4-5ABC8919CBB1}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {BCEDCD6C-221E-4FC2-94C4-5ABC8919CBB1}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {BCEDCD6C-221E-4FC2-94C4-5ABC8919CBB1}.Release|x64.ActiveCfg = Release|x64
+ {BCEDCD6C-221E-4FC2-94C4-5ABC8919CBB1}.Release|x64.Build.0 = Release|x64
+ {BCEDCD6C-221E-4FC2-94C4-5ABC8919CBB1}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {BCEDCD6C-221E-4FC2-94C4-5ABC8919CBB1}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {DBE5D6DF-8A5B-4939-841E-185A4A0D426E}.Debug|x64.ActiveCfg = Debug|x64
+ {DBE5D6DF-8A5B-4939-841E-185A4A0D426E}.Debug|x64.Build.0 = Debug|x64
+ {DBE5D6DF-8A5B-4939-841E-185A4A0D426E}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
+ {DBE5D6DF-8A5B-4939-841E-185A4A0D426E}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
+ {DBE5D6DF-8A5B-4939-841E-185A4A0D426E}.Release|x64.ActiveCfg = Release|x64
+ {DBE5D6DF-8A5B-4939-841E-185A4A0D426E}.Release|x64.Build.0 = Release|x64
+ {DBE5D6DF-8A5B-4939-841E-185A4A0D426E}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {DBE5D6DF-8A5B-4939-841E-185A4A0D426E}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {73D8F32B-0856-36F9-9E2D-BAFE4F69D977}
+ EndGlobalSection
+EndGlobal
diff --git a/bin/whisper.cuda.vcxproj b/bin/whisper.cuda.vcxproj
new file mode 100644
index 00000000000..b1a4b6057cb
--- /dev/null
+++ b/bin/whisper.cuda.vcxproj
@@ -0,0 +1,346 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {E8037DF6-3F31-4B79-A50E-5C31B54187F2}
+ Win32Proj
+ 10.0.17763.0
+ x64
+ whisper.cuda
+ NoUpgrade
+
+
+
+ DynamicLibrary
+ MultiByte
+ v141
+
+
+ DynamicLibrary
+ MultiByte
+ v141
+
+
+ DynamicLibrary
+ MultiByte
+ v141
+
+
+ DynamicLibrary
+ MultiByte
+ v141
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ .\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper.cuda
+ .\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper.cuda
+ .dll
+ .\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper.cuda
+ .dll
+ .\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper.cuda
+ .dll
+
+
+ Build
+
+
+ Build
+
+
+ Build
+
+
+ Build
+
+
+
+ $(SolutionDir)..\;..\ThirdParty\ClBlast\include;$(CUDA_PATH)\Include;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ EnableFastChecks
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebug
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;CLBLAST_DLL;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR="Debug"
+ $(IntDir)
+
+
+ ..\..\
+ compute_50,sm_50;compute_60,sm_60;compute_70,sm_70;compute_80,sm_80;compute_90,sm_90
+
+
+ %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR=\"Debug\"
+ ..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+ cudart.lib;cuda.lib;cublas.lib;whisper.lib;%(AdditionalDependencies)
+ ..\external\whisper-cuda.def
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;$(CUDA_PATH)\lib\x64;..\ThirdParty\CLBlast\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+
+
+
+
+ $(SolutionDir)..\;..\ThirdParty\ClBlast\include;$(CUDA_PATH)\Include;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8 /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;CLBLAST_DLL;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR="Release"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR=\"Release\"
+ ..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+ ..\external\whisper-cuda.def
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ cudart.lib;cuda.lib;cublas.lib;whisper.lib;%(AdditionalDependencies)
+
+
+
+
+ $(SolutionDir)..\;..\ThirdParty\ClBlast\include;$(CUDA_PATH)\Include;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;CLBLAST_DLL;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR="MinSizeRel"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR=\"MinSizeRel\"
+ ..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+ ..\external\whisper-cuda.def
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ cudart.lib;cuda.lib;cublas.lib;whisper.lib;%(AdditionalDependencies)
+
+
+
+
+ $(SolutionDir)..\;..\ThirdParty\ClBlast\include;$(CUDA_PATH)\Include;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;CLBLAST_DLL;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR="RelWithDebInfo"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR=\"RelWithDebInfo\"
+ ..\.;%(AdditionalIncludeDirectories)
+
+
+ ..\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+ ..\external\whisper-cuda.def
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ cudart.lib;cuda.lib;cublas.lib;whisper.lib;%(AdditionalDependencies)
+
+
+
+
+ _WIN64;WIN64;%(PreprocessorDefinitions)
+
+
+ 64
+ true
+ true
+ compute_50,sm_50;compute_60,sm_60;compute_70,sm_70;compute_80,sm_80;compute_90,sm_90
+ compute_50,sm_50;compute_60,sm_60;compute_70,sm_70;compute_80,sm_80;compute_90,sm_90
+ compute_50,sm_50;compute_60,sm_60;compute_70,sm_70;compute_80,sm_80;compute_90,sm_90
+ ..\..\
+ ..\..\
+ ..\..\
+ $(IntDir)\%(Filename)%(Extension).obj
+ $(IntDir)\%(Filename)%(Extension).obj
+ $(IntDir)\%(Filename)%(Extension).obj
+ $(IntDir)\%(Filename)%(Extension).obj
+
+
+
+
+
+
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/whisper.cuda.vcxproj.filters b/bin/whisper.cuda.vcxproj.filters
new file mode 100644
index 00000000000..9d2b9cbed68
--- /dev/null
+++ b/bin/whisper.cuda.vcxproj.filters
@@ -0,0 +1,190 @@
+
+
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+
+
+
+
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+ ggml-cuda
+
+
+
+
+
+
+
+ {3190fcf4-b34b-40a1-9150-4a45f175608f}
+
+
+
\ No newline at end of file
diff --git a/bin/whisper.dll.vcxproj b/bin/whisper.dll.vcxproj
new file mode 100644
index 00000000000..07d9c80685b
--- /dev/null
+++ b/bin/whisper.dll.vcxproj
@@ -0,0 +1,261 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {BBA5D805-9B22-47A1-B22B-7F570FB723D1}
+ Win32Proj
+ 10.0.17763.0
+ x64
+ whisper.dll
+ NoUpgrade
+
+
+
+ DynamicLibrary
+ MultiByte
+ v141
+
+
+ DynamicLibrary
+ MultiByte
+ v141
+
+
+ DynamicLibrary
+ MultiByte
+ v141
+
+
+ DynamicLibrary
+ MultiByte
+ v141
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ .\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper
+ .dll
+ .\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper
+ .dll
+ .\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper
+ .dll
+ .\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper
+ .dll
+
+
+
+
+
+
+
+ $(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ EnableFastChecks
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebug
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;_XOPEN_SOURCE=600;CMAKE_INTDIR="Debug"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;_XOPEN_SOURCE=600;CMAKE_INTDIR=\"Debug\"
+ ..\..\.;%(AdditionalIncludeDirectories)
+
+
+ D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+ whisper.lib;common.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ ..\external\whisper.dll.def
+ $(IntDir)$(ProjectName).lib
+
+
+
+
+ $(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8 /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;_XOPEN_SOURCE=600;CMAKE_INTDIR="Release"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;_XOPEN_SOURCE=600;CMAKE_INTDIR=\"Release\"
+ ..\..\.;%(AdditionalIncludeDirectories)
+
+
+ D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+ whisper.lib;common.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ ..\external\whisper.dll.def
+ $(IntDir)$(ProjectName).lib
+
+
+
+
+ $(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;_XOPEN_SOURCE=600;CMAKE_INTDIR="MinSizeRel"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;_XOPEN_SOURCE=600;CMAKE_INTDIR=\"MinSizeRel\"
+ ..\..\.;%(AdditionalIncludeDirectories)
+
+
+ D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+ whisper.lib;common.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ ..\external\whisper.dll.def
+ $(IntDir)$(ProjectName).lib
+
+
+
+
+ $(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;_XOPEN_SOURCE=600;CMAKE_INTDIR="RelWithDebInfo"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;_XOPEN_SOURCE=600;CMAKE_INTDIR=\"RelWithDebInfo\"
+ ..\..\.;%(AdditionalIncludeDirectories)
+
+
+ D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+ whisper.lib;common.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ ..\external\whisper.dll.def
+ $(IntDir)$(ProjectName).lib
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/whisper.dll.vcxproj.filters b/bin/whisper.dll.vcxproj.filters
new file mode 100644
index 00000000000..b6bfa099376
--- /dev/null
+++ b/bin/whisper.dll.vcxproj.filters
@@ -0,0 +1,37 @@
+
+
+
+
+
+ openvino
+
+
+ clblast
+
+
+ cuda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {b91e609f-6505-49e0-889c-f5657509ef91}
+
+
+ {a432c5e0-98eb-4d04-ac50-226bcc101985}
+
+
+ {ad8a556e-cb02-4b02-9e60-7b616dd5d705}
+
+
+
\ No newline at end of file
diff --git a/bin/whisper.openvino.vcxproj b/bin/whisper.openvino.vcxproj
new file mode 100644
index 00000000000..8a2b31f3499
--- /dev/null
+++ b/bin/whisper.openvino.vcxproj
@@ -0,0 +1,256 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {226B1D6B-6DB2-3A9D-ABA9-9826DE680F12}
+ Win32Proj
+ 10.0.17763.0
+ x64
+ whisper.openvino
+ NoUpgrade
+
+
+
+ DynamicLibrary
+ MultiByte
+ v141
+
+
+ DynamicLibrary
+ MultiByte
+ v141
+
+
+ DynamicLibrary
+ MultiByte
+ v141
+
+
+ DynamicLibrary
+ MultiByte
+ v141
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ .\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper.openvino
+ .\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper.openvino
+ .dll
+ .\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper.openvino
+ .dll
+ .\Output\Bin\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper.openvino
+ .dll
+
+
+
+
+ $(SolutionDir)..\;..\ThirdParty\openvino_2023\runtime\include;..\ThirdParty\openvino_2023\runtime\include\ie;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ EnableFastChecks
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebug
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR="Debug"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR=\"Debug\"
+ ..\.;..\ThirdParty\openvino_2023\runtime\include;..\ThirdParty\openvino_2023\runtime\include\ie;%(AdditionalIncludeDirectories)
+
+
+ ..\.;..\ThirdParty\openvino_2023\runtime\include;..\ThirdParty\openvino_2023\runtime\include\ie;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+ whisper.lib;..\ThirdParty\openvino_2023\runtime\lib\intel64\Debug\openvinod.lib;%(AdditionalDependencies)
+ ..\external\whisper-openvino-encoder.def
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+
+
+ false
+
+
+
+
+ $(SolutionDir)..\;..\ThirdParty\openvino_2023\runtime\include;..\ThirdParty\openvino_2023\runtime\include\ie;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8 /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR="Release"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR=\"Release\"
+ ..\.;..\ThirdParty\openvino_2023\runtime\include;..\ThirdParty\openvino_2023\runtime\include\ie;%(AdditionalIncludeDirectories)
+
+
+ ..\.;..\ThirdParty\openvino_2023\runtime\include;..\ThirdParty\openvino_2023\runtime\include\ie;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+ ..\external\whisper-openvino-encoder.def
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ whisper.lib;..\ThirdParty\openvino_2023\runtime\lib\intel64\Release\openvino.lib;%(AdditionalDependencies)
+
+
+
+
+ $(SolutionDir)..\;..\ThirdParty\openvino_2023\runtime\include;..\ThirdParty\openvino_2023\runtime\include\ie;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR="MinSizeRel"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR=\"MinSizeRel\"
+ ..\.;..\ThirdParty\openvino_2023\runtime\include;..\ThirdParty\openvino_2023\runtime\include\ie;%(AdditionalIncludeDirectories)
+
+
+ ..\.;..\ThirdParty\openvino_2023\runtime\include;..\ThirdParty\openvino_2023\runtime\include\ie;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+ ..\external\whisper-openvino-encoder.def
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ whisper.lib;..\ThirdParty\openvino_2023\runtime\lib\intel64\Release\openvino.lib;%(AdditionalDependencies)
+
+
+
+
+ $(SolutionDir)..\;..\ThirdParty\openvino_2023\runtime\include;..\ThirdParty\openvino_2023\runtime\include\ie;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR="RelWithDebInfo"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;_XOPEN_SOURCE=600;TBB_PREVIEW_WAITING_FOR_WORKERS=1;IE_THREAD=IE_THREAD_TBB;OV_THREAD=OV_THREAD_TBB;CMAKE_INTDIR=\"RelWithDebInfo\"
+ ..\.;..\ThirdParty\openvino_2023\runtime\include;..\ThirdParty\openvino_2023\runtime\include\ie;%(AdditionalIncludeDirectories)
+
+
+ ..\.;..\ThirdParty\openvino_2023\runtime\include;..\ThirdParty\openvino_2023\runtime\include\ie;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+ ..\external\whisper-openvino-encoder.def
+ $(OutDir)..\..\..\Lib\$(Configuration)\$(PlatformTarget)\;%(AdditionalLibraryDirectories)
+ whisper.lib;..\ThirdParty\openvino_2023\runtime\lib\intel64\Release\openvino.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/whisper.openvino.vcxproj.filters b/bin/whisper.openvino.vcxproj.filters
new file mode 100644
index 00000000000..9e1b3c3d342
--- /dev/null
+++ b/bin/whisper.openvino.vcxproj.filters
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {6EEB769A-D831-369C-875E-A259D60EB937}
+
+
+ {DB262071-F966-34BF-BD40-232FB636F54E}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/whisper.vcxproj b/bin/whisper.vcxproj
new file mode 100644
index 00000000000..3db30e38c7e
--- /dev/null
+++ b/bin/whisper.vcxproj
@@ -0,0 +1,231 @@
+
+
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ MinSizeRel
+ x64
+
+
+ RelWithDebInfo
+ x64
+
+
+
+ {41EE176F-DA47-304E-BBF3-1441873DD2B2}
+ Win32Proj
+ 10.0.17763.0
+ x64
+ whisper
+ NoUpgrade
+
+
+
+ StaticLibrary
+ MultiByte
+ v141
+
+
+ StaticLibrary
+ MultiByte
+ v141
+
+
+ StaticLibrary
+ MultiByte
+ v141
+
+
+ StaticLibrary
+ MultiByte
+ v141
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.20506.1
+ .\Output\Lib\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper
+ .lib
+ .\Output\Lib\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper
+ .lib
+ .\Output\Lib\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper
+ .lib
+ .\Output\Lib\$(Configuration)\$(PlatformTarget)\
+ .\Output\Obj\$(Configuration)\$(ProjectName)\$(PlatformTarget)\
+ whisper
+ .lib
+
+
+
+ $(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ EnableFastChecks
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ Disabled
+ Disabled
+ NotUsing
+ MultiThreadedDebug
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;WHISPER_USE_OPENVINO;GGML_USE_CUDA;GGML_USE_CLBLAST;GGML_SIMD;_CRT_SECURE_NO_WARNINGS;_XOPEN_SOURCE=600;CMAKE_INTDIR="Debug"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;_XOPEN_SOURCE=600;CMAKE_INTDIR=\"Debug\"
+ D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+
+
+ D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+
+
+ $(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8 /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ AnySuitable
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;WHISPER_USE_OPENVINO;GGML_USE_CUDA;GGML_USE_CLBLAST;GGML_SIMD;_CRT_SECURE_NO_WARNINGS;_XOPEN_SOURCE=600;CMAKE_INTDIR="Release"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;_XOPEN_SOURCE=600;CMAKE_INTDIR=\"Release\"
+ D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+
+
+ D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+
+
+ $(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MinSpace
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;WHISPER_USE_OPENVINO;GGML_USE_CUDA;GGML_USE_CLBLAST;GGML_SIMD;_CRT_SECURE_NO_WARNINGS;_XOPEN_SOURCE=600;CMAKE_INTDIR="MinSizeRel"
+ $(IntDir)
+
+
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;_XOPEN_SOURCE=600;CMAKE_INTDIR=\"MinSizeRel\"
+ ..\..\..;%(AdditionalIncludeDirectories)
+
+
+ D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+
+
+ $(SolutionDir)..\;%(AdditionalIncludeDirectories)
+ %(AdditionalOptions) /utf-8
+ $(IntDir)
+ ProgramDatabase
+ AdvancedVectorExtensions2
+ Sync
+ OnlyExplicitInline
+ MaxSpeed
+ NotUsing
+ MultiThreaded
+ true
+ false
+ Level3
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;WHISPER_USE_OPENVINO;GGML_USE_CUDA;GGML_USE_CLBLAST;GGML_SIMD;_CRT_SECURE_NO_WARNINGS;_XOPEN_SOURCE=600;CMAKE_INTDIR="RelWithDebInfo"
+ $(IntDir)
+
+
+ %(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;WHISPER_USE_OPENVINO;_CRT_SECURE_NO_WARNINGS;_XOPEN_SOURCE=600;CMAKE_INTDIR=\"RelWithDebInfo\"
+ D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+
+
+ D:\Downloads\whisper.cpp\.;%(AdditionalIncludeDirectories)
+ $(ProjectDir)/$(IntDir)
+ %(Filename).h
+ %(Filename).tlb
+ %(Filename)_i.c
+ %(Filename)_p.c
+
+
+ %(AdditionalOptions) /machine:x64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/whisper.vcxproj.filters b/bin/whisper.vcxproj.filters
new file mode 100644
index 00000000000..978d8f11a83
--- /dev/null
+++ b/bin/whisper.vcxproj.filters
@@ -0,0 +1,39 @@
+
+
+
+
+
+ ggml
+
+
+ ggml
+
+
+ ggml
+
+
+ ggml
+
+
+
+
+
+
+ ggml
+
+
+ ggml
+
+
+ ggml
+
+
+ ggml
+
+
+
+
+ {6EEB769A-D831-369C-875E-A259D60EB937}
+
+
+
\ No newline at end of file
diff --git a/examples/common-sdl.cpp b/examples/common-sdl.cpp
index 5fc28e53f44..afe66ae393b 100644
--- a/examples/common-sdl.cpp
+++ b/examples/common-sdl.cpp
@@ -1,4 +1,5 @@
#include "common-sdl.h"
+#include
audio_async::audio_async(int len_ms) {
m_len_ms = len_ms;
diff --git a/examples/cumain/CMakeLists.txt b/examples/cumain/CMakeLists.txt
new file mode 100644
index 00000000000..1bb16f58214
--- /dev/null
+++ b/examples/cumain/CMakeLists.txt
@@ -0,0 +1,6 @@
+set(TARGET main)
+add_executable(${TARGET} main.cpp)
+
+include(DefaultTargetOptions)
+
+target_link_libraries(${TARGET} PRIVATE common whisper ${CMAKE_THREAD_LIBS_INIT})
diff --git a/examples/cumain/README.md b/examples/cumain/README.md
new file mode 100644
index 00000000000..aca2a9fd229
--- /dev/null
+++ b/examples/cumain/README.md
@@ -0,0 +1,53 @@
+# main
+
+This is the main example demonstrating most of the functionality of the Whisper model.
+It can be used as a reference for using the `whisper.cpp` library in other projects.
+
+```
+./main -h
+
+usage: ./main [options] file0.wav file1.wav ...
+
+options:
+ -h, --help [default] show this help message and exit
+ -t N, --threads N [4 ] number of threads to use during computation
+ -p N, --processors N [1 ] number of processors to use during computation
+ -ot N, --offset-t N [0 ] time offset in milliseconds
+ -on N, --offset-n N [0 ] segment index offset
+ -d N, --duration N [0 ] duration of audio to process in milliseconds
+ -mc N, --max-context N [-1 ] maximum number of text context tokens to store
+ -ml N, --max-len N [0 ] maximum segment length in characters
+ -sow, --split-on-word [false ] split on word rather than on token
+ -bo N, --best-of N [5 ] number of best candidates to keep
+ -bs N, --beam-size N [5 ] beam size for beam search
+ -wt N, --word-thold N [0.01 ] word timestamp probability threshold
+ -et N, --entropy-thold N [2.40 ] entropy threshold for decoder fail
+ -lpt N, --logprob-thold N [-1.00 ] log probability threshold for decoder fail
+ -debug, --debug-mode [false ] enable debug mode (eg. dump log_mel)
+ -tr, --translate [false ] translate from source language to english
+ -di, --diarize [false ] stereo audio diarization
+ -tdrz, --tinydiarize [false ] enable tinydiarize (requires a tdrz model)
+ -nf, --no-fallback [false ] do not use temperature fallback while decoding
+ -otxt, --output-txt [false ] output result in a text file
+ -ovtt, --output-vtt [false ] output result in a vtt file
+ -osrt, --output-srt [false ] output result in a srt file
+ -olrc, --output-lrc [false ] output result in a lrc file
+ -owts, --output-words [false ] output script for generating karaoke video
+ -fp, --font-path [/System/Library/Fonts/Supplemental/Courier New Bold.ttf] path to a monospace font for karaoke video
+ -ocsv, --output-csv [false ] output result in a CSV file
+ -oj, --output-json [false ] output result in a JSON file
+ -ojf, --output-json-full [false ] include more information in the JSON file
+ -of FNAME, --output-file FNAME [ ] output file path (without file extension)
+ -ps, --print-special [false ] print special tokens
+ -pc, --print-colors [false ] print colors
+ -pp, --print-progress [false ] print progress
+ -nt, --no-timestamps [false ] do not print timestamps
+ -l LANG, --language LANG [en ] spoken language ('auto' for auto-detect)
+ -dl, --detect-language [false ] exit after automatically detecting language
+ --prompt PROMPT [ ] initial prompt
+ -m FNAME, --model FNAME [models/ggml-base.en.bin] model path
+ -f FNAME, --file FNAME [ ] input WAV file path
+ -oved D, --ov-e-device DNAME [CPU ] the OpenVINO device used for encode inference
+ -ls, --log-score [false ] log best decoder scores of tokens
+ -ng, --no-gpu [false ] disable GPU
+```
diff --git a/examples/cumain/main.cpp b/examples/cumain/main.cpp
new file mode 100644
index 00000000000..001855d5d25
--- /dev/null
+++ b/examples/cumain/main.cpp
@@ -0,0 +1,1133 @@
+#include "common.h"
+
+#include "whisper.h"
+#include "external/base.h"
+#include "../ggml-cuda.h"
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#if defined(_MSC_VER)
+#pragma warning(disable: 4244 4267) // possible loss of data
+#endif
+
+// helper function to replace substrings
+void replace_all(std::string & s, const std::string & search, const std::string & replace) {
+ for (size_t pos = 0; ; pos += replace.length()) {
+ pos = s.find(search, pos);
+ if (pos == std::string::npos) break;
+ s.erase(pos, search.length());
+ s.insert(pos, replace);
+ }
+}
+
+// command-line parameters
+struct whisper_params {
+ int32_t n_threads = std::min(4, (int32_t) std::thread::hardware_concurrency());
+ int32_t n_processors = 1;
+ int32_t offset_t_ms = 0;
+ int32_t offset_n = 0;
+ int32_t duration_ms = 0;
+ int32_t progress_step = 5;
+ int32_t max_context = -1;
+ int32_t max_len = 0;
+ int32_t best_of = whisper_full_default_params(WHISPER_SAMPLING_GREEDY).greedy.best_of;
+ int32_t beam_size = whisper_full_default_params(WHISPER_SAMPLING_BEAM_SEARCH).beam_search.beam_size;
+ int32_t audio_ctx = 0;
+
+ float word_thold = 0.01f;
+ float entropy_thold = 2.40f;
+ float logprob_thold = -1.00f;
+
+ bool speed_up = false;
+ bool debug_mode = false;
+ bool translate = false;
+ bool detect_language = false;
+ bool diarize = false;
+ bool tinydiarize = false;
+ bool split_on_word = false;
+ bool no_fallback = false;
+ bool output_txt = false;
+ bool output_vtt = false;
+ bool output_srt = false;
+ bool output_wts = false;
+ bool output_csv = false;
+ bool output_jsn = false;
+ bool output_jsn_full = false;
+ bool output_lrc = false;
+ bool no_prints = false;
+ bool print_special = false;
+ bool print_colors = false;
+ bool print_progress = false;
+ bool no_timestamps = false;
+ bool log_score = false;
+ bool use_gpu = true;
+ bool openvino = true;
+ bool use_cuda = false;
+ bool use_opencl = false;
+
+ std::string language = "en";
+ std::string prompt;
+ std::string font_path = "/System/Library/Fonts/Supplemental/Courier New Bold.ttf";
+ std::string model = "models/ggml-base.en.bin";
+
+ // [TDRZ] speaker turn string
+ std::string tdrz_speaker_turn = " [SPEAKER_TURN]"; // TODO: set from command line
+
+ std::string openvino_encode_device = "CPU";
+
+ std::string dtw = "";
+
+ std::vector fname_inp = {};
+ std::vector fname_out = {};
+};
+
+void whisper_print_usage(int argc, char ** argv, const whisper_params & params);
+
+char* whisper_param_turn_lowercase(char* in){
+ int string_len = strlen(in);
+ for(int i = 0; i < string_len; i++){
+ *(in+i) = tolower((unsigned char)*(in+i));
+ }
+ return in;
+}
+
+bool whisper_params_parse(int argc, char ** argv, whisper_params & params) {
+ for (int i = 1; i < argc; i++) {
+ std::string arg = argv[i];
+
+ if (arg == "-"){
+ params.fname_inp.push_back(arg);
+ continue;
+ }
+
+ if (arg[0] != '-') {
+ params.fname_inp.push_back(arg);
+ continue;
+ }
+
+ if (arg == "-h" || arg == "--help") {
+ whisper_print_usage(argc, argv, params);
+ exit(0);
+ }
+ else if (arg == "-t" || arg == "--threads") { params.n_threads = std::stoi(argv[++i]); }
+ else if (arg == "-p" || arg == "--processors") { params.n_processors = std::stoi(argv[++i]); }
+ else if (arg == "-ot" || arg == "--offset-t") { params.offset_t_ms = std::stoi(argv[++i]); }
+ else if (arg == "-on" || arg == "--offset-n") { params.offset_n = std::stoi(argv[++i]); }
+ else if (arg == "-d" || arg == "--duration") { params.duration_ms = std::stoi(argv[++i]); }
+ else if (arg == "-mc" || arg == "--max-context") { params.max_context = std::stoi(argv[++i]); }
+ else if (arg == "-ml" || arg == "--max-len") { params.max_len = std::stoi(argv[++i]); }
+ else if (arg == "-bo" || arg == "--best-of") { params.best_of = std::stoi(argv[++i]); }
+ else if (arg == "-bs" || arg == "--beam-size") { params.beam_size = std::stoi(argv[++i]); }
+ else if (arg == "-ac" || arg == "--audio-ctx") { params.audio_ctx = std::stoi(argv[++i]); }
+ else if (arg == "-wt" || arg == "--word-thold") { params.word_thold = std::stof(argv[++i]); }
+ else if (arg == "-et" || arg == "--entropy-thold") { params.entropy_thold = std::stof(argv[++i]); }
+ else if (arg == "-lpt" || arg == "--logprob-thold") { params.logprob_thold = std::stof(argv[++i]); }
+ // else if (arg == "-su" || arg == "--speed-up") { params.speed_up = true; }
+ else if (arg == "-debug"|| arg == "--debug-mode") { params.debug_mode = true; }
+ else if (arg == "-tr" || arg == "--translate") { params.translate = true; }
+ else if (arg == "-di" || arg == "--diarize") { params.diarize = true; }
+ else if (arg == "-tdrz" || arg == "--tinydiarize") { params.tinydiarize = true; }
+ else if (arg == "-sow" || arg == "--split-on-word") { params.split_on_word = true; }
+ else if (arg == "-nf" || arg == "--no-fallback") { params.no_fallback = true; }
+ else if (arg == "-otxt" || arg == "--output-txt") { params.output_txt = true; }
+ else if (arg == "-ovtt" || arg == "--output-vtt") { params.output_vtt = true; }
+ else if (arg == "-osrt" || arg == "--output-srt") { params.output_srt = true; }
+ else if (arg == "-owts" || arg == "--output-words") { params.output_wts = true; }
+ else if (arg == "-olrc" || arg == "--output-lrc") { params.output_lrc = true; }
+ else if (arg == "-fp" || arg == "--font-path") { params.font_path = argv[++i]; }
+ else if (arg == "-ocsv" || arg == "--output-csv") { params.output_csv = true; }
+ else if (arg == "-oj" || arg == "--output-json") { params.output_jsn = true; }
+ else if (arg == "-ojf" || arg == "--output-json-full"){ params.output_jsn_full = params.output_jsn = true; }
+ else if (arg == "-of" || arg == "--output-file") { params.fname_out.emplace_back(argv[++i]); }
+ else if (arg == "-np" || arg == "--no-prints") { params.no_prints = true; }
+ else if (arg == "-ps" || arg == "--print-special") { params.print_special = true; }
+ else if (arg == "-pc" || arg == "--print-colors") { params.print_colors = true; }
+ else if (arg == "-pp" || arg == "--print-progress") { params.print_progress = true; }
+ else if (arg == "-nt" || arg == "--no-timestamps") { params.no_timestamps = true; }
+ else if (arg == "-l" || arg == "--language") { params.language = whisper_param_turn_lowercase(argv[++i]); }
+ else if (arg == "-dl" || arg == "--detect-language") { params.detect_language = true; }
+ else if ( arg == "--prompt") { params.prompt = argv[++i]; }
+ else if (arg == "-m" || arg == "--model") { params.model = argv[++i]; }
+ else if (arg == "-f" || arg == "--file") { params.fname_inp.emplace_back(argv[++i]); }
+ else if (arg == "-oved" || arg == "--ov-e-device") { params.openvino_encode_device = argv[++i]; }
+ else if (arg == "-dtw" || arg == "--dtw") { params.dtw = argv[++i]; }
+ else if (arg == "-ls" || arg == "--log-score") { params.log_score = true; }
+ else if (arg == "-ng" || arg == "--no-gpu") { params.use_gpu = false; }
+ else if (arg == "-nov" || arg == "--no-openvino") { params.openvino = false; }
+ else if (arg == "-cuda" || arg == "--use-cuda") { params.use_cuda = true; }
+ else if (arg == "-ocl" || arg == "--opencl") { params.use_opencl = true; }
+ else {
+ fprintf(stderr, "error: unknown argument: %s\n", arg.c_str());
+ whisper_print_usage(argc, argv, params);
+ exit(0);
+ }
+ }
+
+ return true;
+}
+
+void whisper_print_usage(int /*argc*/, char ** argv, const whisper_params & params) {
+ fprintf(stderr, "\n");
+ fprintf(stderr, "usage: %s [options] file0.wav file1.wav ...\n", argv[0]);
+ fprintf(stderr, "\n");
+ fprintf(stderr, "options:\n");
+ fprintf(stderr, " -h, --help [default] show this help message and exit\n");
+ fprintf(stderr, " -t N, --threads N [%-7d] number of threads to use during computation\n", params.n_threads);
+ fprintf(stderr, " -p N, --processors N [%-7d] number of processors to use during computation\n", params.n_processors);
+ fprintf(stderr, " -ot N, --offset-t N [%-7d] time offset in milliseconds\n", params.offset_t_ms);
+ fprintf(stderr, " -on N, --offset-n N [%-7d] segment index offset\n", params.offset_n);
+ fprintf(stderr, " -d N, --duration N [%-7d] duration of audio to process in milliseconds\n", params.duration_ms);
+ fprintf(stderr, " -mc N, --max-context N [%-7d] maximum number of text context tokens to store\n", params.max_context);
+ fprintf(stderr, " -ml N, --max-len N [%-7d] maximum segment length in characters\n", params.max_len);
+ fprintf(stderr, " -sow, --split-on-word [%-7s] split on word rather than on token\n", params.split_on_word ? "true" : "false");
+ fprintf(stderr, " -bo N, --best-of N [%-7d] number of best candidates to keep\n", params.best_of);
+ fprintf(stderr, " -bs N, --beam-size N [%-7d] beam size for beam search\n", params.beam_size);
+ fprintf(stderr, " -ac N, --audio-ctx N [%-7d] audio context size (0 - all)\n", params.audio_ctx);
+ fprintf(stderr, " -wt N, --word-thold N [%-7.2f] word timestamp probability threshold\n", params.word_thold);
+ fprintf(stderr, " -et N, --entropy-thold N [%-7.2f] entropy threshold for decoder fail\n", params.entropy_thold);
+ fprintf(stderr, " -lpt N, --logprob-thold N [%-7.2f] log probability threshold for decoder fail\n", params.logprob_thold);
+ // fprintf(stderr, " -su, --speed-up [%-7s] speed up audio by x2 (reduced accuracy)\n", params.speed_up ? "true" : "false");
+ fprintf(stderr, " -debug, --debug-mode [%-7s] enable debug mode (eg. dump log_mel)\n", params.debug_mode ? "true" : "false");
+ fprintf(stderr, " -tr, --translate [%-7s] translate from source language to english\n", params.translate ? "true" : "false");
+ fprintf(stderr, " -di, --diarize [%-7s] stereo audio diarization\n", params.diarize ? "true" : "false");
+ fprintf(stderr, " -tdrz, --tinydiarize [%-7s] enable tinydiarize (requires a tdrz model)\n", params.tinydiarize ? "true" : "false");
+ fprintf(stderr, " -nf, --no-fallback [%-7s] do not use temperature fallback while decoding\n", params.no_fallback ? "true" : "false");
+ fprintf(stderr, " -otxt, --output-txt [%-7s] output result in a text file\n", params.output_txt ? "true" : "false");
+ fprintf(stderr, " -ovtt, --output-vtt [%-7s] output result in a vtt file\n", params.output_vtt ? "true" : "false");
+ fprintf(stderr, " -osrt, --output-srt [%-7s] output result in a srt file\n", params.output_srt ? "true" : "false");
+ fprintf(stderr, " -olrc, --output-lrc [%-7s] output result in a lrc file\n", params.output_lrc ? "true" : "false");
+ fprintf(stderr, " -owts, --output-words [%-7s] output script for generating karaoke video\n", params.output_wts ? "true" : "false");
+ fprintf(stderr, " -fp, --font-path [%-7s] path to a monospace font for karaoke video\n", params.font_path.c_str());
+ fprintf(stderr, " -ocsv, --output-csv [%-7s] output result in a CSV file\n", params.output_csv ? "true" : "false");
+ fprintf(stderr, " -oj, --output-json [%-7s] output result in a JSON file\n", params.output_jsn ? "true" : "false");
+ fprintf(stderr, " -ojf, --output-json-full [%-7s] include more information in the JSON file\n", params.output_jsn_full ? "true" : "false");
+ fprintf(stderr, " -of FNAME, --output-file FNAME [%-7s] output file path (without file extension)\n", "");
+ fprintf(stderr, " -np, --no-prints [%-7s] do not print anything other than the results\n", params.no_prints ? "true" : "false");
+ fprintf(stderr, " -ps, --print-special [%-7s] print special tokens\n", params.print_special ? "true" : "false");
+ fprintf(stderr, " -pc, --print-colors [%-7s] print colors\n", params.print_colors ? "true" : "false");
+ fprintf(stderr, " -pp, --print-progress [%-7s] print progress\n", params.print_progress ? "true" : "false");
+ fprintf(stderr, " -nt, --no-timestamps [%-7s] do not print timestamps\n", params.no_timestamps ? "true" : "false");
+ fprintf(stderr, " -l LANG, --language LANG [%-7s] spoken language ('auto' for auto-detect)\n", params.language.c_str());
+ fprintf(stderr, " -dl, --detect-language [%-7s] exit after automatically detecting language\n", params.detect_language ? "true" : "false");
+ fprintf(stderr, " --prompt PROMPT [%-7s] initial prompt\n", params.prompt.c_str());
+ fprintf(stderr, " -m FNAME, --model FNAME [%-7s] model path\n", params.model.c_str());
+ fprintf(stderr, " -f FNAME, --file FNAME [%-7s] input WAV file path\n", "");
+ fprintf(stderr, " -oved D, --ov-e-device DNAME [%-7s] the OpenVINO device used for encode inference\n", params.openvino_encode_device.c_str());
+ fprintf(stderr, " -dtw MODEL --dtw MODEL [%-7s] compute token-level timestamps\n", params.dtw.c_str());
+ fprintf(stderr, " -ls, --log-score [%-7s] log best decoder scores of tokens\n", params.log_score?"true":"false");
+ fprintf(stderr, " -ng, --no-gpu [%-7s] disable GPU\n", params.use_gpu ? "false" : "true");
+ fprintf(stderr, " -nov, --no-openvino [%-7s] disable OpenVINO\n", params.openvino ? "false" : "true");
+ fprintf(stderr, " -cuda, --use-cuda [%-7s] use CUDA\n", params.use_cuda ? "false" : "true");
+ fprintf(stderr, " -ocl, --opencl [%-7s] use OpenCL\n", params.use_opencl ? "false" : "true");
+ fprintf(stderr, "\n");
+}
+
+struct whisper_print_user_data {
+ const whisper_params * params;
+
+ const std::vector> * pcmf32s;
+ int progress_prev;
+};
+
+std::string estimate_diarization_speaker(std::vector> pcmf32s, int64_t t0, int64_t t1, bool id_only = false) {
+ std::string speaker = "";
+ const int64_t n_samples = pcmf32s[0].size();
+
+ const int64_t is0 = timestamp_to_sample(t0, n_samples, WHISPER_SAMPLE_RATE);
+ const int64_t is1 = timestamp_to_sample(t1, n_samples, WHISPER_SAMPLE_RATE);
+
+ double energy0 = 0.0f;
+ double energy1 = 0.0f;
+
+ for (int64_t j = is0; j < is1; j++) {
+ energy0 += fabs(pcmf32s[0][j]);
+ energy1 += fabs(pcmf32s[1][j]);
+ }
+
+ if (energy0 > 1.1*energy1) {
+ speaker = "0";
+ } else if (energy1 > 1.1*energy0) {
+ speaker = "1";
+ } else {
+ speaker = "?";
+ }
+
+ //printf("is0 = %lld, is1 = %lld, energy0 = %f, energy1 = %f, speaker = %s\n", is0, is1, energy0, energy1, speaker.c_str());
+
+ if (!id_only) {
+ speaker.insert(0, "(speaker ");
+ speaker.append(")");
+ }
+
+ return speaker;
+}
+void whisper_print_progress_callback(struct whisper_context * /*ctx*/, struct whisper_state * /*state*/, int progress, void * user_data) {
+ int progress_step = ((whisper_print_user_data *) user_data)->params->progress_step;
+ int * progress_prev = &(((whisper_print_user_data *) user_data)->progress_prev);
+ if (progress >= *progress_prev + progress_step) {
+ *progress_prev += progress_step;
+ fprintf(stderr, "%s: progress = %3d%%\n", __func__, progress);
+ }
+}
+
+void whisper_print_segment_callback(struct whisper_context * ctx, struct whisper_state * /*state*/, int n_new, void * user_data) {
+ const auto & params = *((whisper_print_user_data *) user_data)->params;
+ const auto & pcmf32s = *((whisper_print_user_data *) user_data)->pcmf32s;
+
+ const int n_segments = whisper_full_n_segments(ctx);
+
+ std::string speaker = "";
+
+ int64_t t0 = 0;
+ int64_t t1 = 0;
+
+ // print the last n_new segments
+ const int s0 = n_segments - n_new;
+
+ if (s0 == 0) {
+ printf("\n");
+ }
+
+ for (int i = s0; i < n_segments; i++) {
+ if (!params.no_timestamps || params.diarize) {
+ t0 = whisper_full_get_segment_t0(ctx, i);
+ t1 = whisper_full_get_segment_t1(ctx, i);
+ }
+
+ if (!params.no_timestamps) {
+ printf("[%s --> %s] ", to_timestamp(t0).c_str(), to_timestamp(t1).c_str());
+ }
+
+ if (params.diarize && pcmf32s.size() == 2) {
+ speaker = estimate_diarization_speaker(pcmf32s, t0, t1);
+ }
+
+ if (params.print_colors) {
+ for (int j = 0; j < whisper_full_n_tokens(ctx, i); ++j) {
+ if (params.print_special == false) {
+ const whisper_token id = whisper_full_get_token_id(ctx, i, j);
+ if (id >= whisper_token_eot(ctx)) {
+ continue;
+ }
+ }
+
+ const char * text = whisper_full_get_token_text(ctx, i, j);
+ const float p = whisper_full_get_token_p (ctx, i, j);
+
+ const int col = std::max(0, std::min((int) k_colors.size() - 1, (int) (std::pow(p, 3)*float(k_colors.size()))));
+
+ printf("%s%s%s%s", speaker.c_str(), k_colors[col].c_str(), text, "\033[0m");
+ }
+ } else {
+ const char * text = whisper_full_get_segment_text(ctx, i);
+
+ printf("%s%s", speaker.c_str(), text);
+ }
+
+ if (params.tinydiarize) {
+ if (whisper_full_get_segment_speaker_turn_next(ctx, i)) {
+ printf("%s", params.tdrz_speaker_turn.c_str());
+ }
+ }
+
+ // with timestamps or speakers: each segment on new line
+ if (!params.no_timestamps || params.diarize) {
+ printf("\n");
+ }
+
+ fflush(stdout);
+ }
+}
+
+bool output_txt(struct whisper_context * ctx, const char * fname, const whisper_params & params, std::vector> pcmf32s) {
+ std::ofstream fout(fname);
+ if (!fout.is_open()) {
+ fprintf(stderr, "%s: failed to open '%s' for writing\n", __func__, fname);
+ return false;
+ }
+
+ fprintf(stderr, "%s: saving output to '%s'\n", __func__, fname);
+
+ const int n_segments = whisper_full_n_segments(ctx);
+ for (int i = 0; i < n_segments; ++i) {
+ const char * text = whisper_full_get_segment_text(ctx, i);
+ std::string speaker = "";
+
+ if (params.diarize && pcmf32s.size() == 2)
+ {
+ const int64_t t0 = whisper_full_get_segment_t0(ctx, i);
+ const int64_t t1 = whisper_full_get_segment_t1(ctx, i);
+ speaker = estimate_diarization_speaker(pcmf32s, t0, t1);
+ }
+
+ fout << speaker << text << "\n";
+ }
+
+ return true;
+}
+
+bool output_vtt(struct whisper_context * ctx, const char * fname, const whisper_params & params, std::vector> pcmf32s) {
+ std::ofstream fout(fname);
+ if (!fout.is_open()) {
+ fprintf(stderr, "%s: failed to open '%s' for writing\n", __func__, fname);
+ return false;
+ }
+
+ fprintf(stderr, "%s: saving output to '%s'\n", __func__, fname);
+
+ fout << "WEBVTT\n\n";
+
+ const int n_segments = whisper_full_n_segments(ctx);
+ for (int i = 0; i < n_segments; ++i) {
+ const char * text = whisper_full_get_segment_text(ctx, i);
+ const int64_t t0 = whisper_full_get_segment_t0(ctx, i);
+ const int64_t t1 = whisper_full_get_segment_t1(ctx, i);
+ std::string speaker = "";
+
+ if (params.diarize && pcmf32s.size() == 2)
+ {
+ speaker = estimate_diarization_speaker(pcmf32s, t0, t1, true);
+ speaker.insert(0, "");
+ }
+
+ fout << to_timestamp(t0) << " --> " << to_timestamp(t1) << "\n";
+ fout << speaker << text << "\n\n";
+ }
+
+ return true;
+}
+
+bool output_srt(struct whisper_context * ctx, const char * fname, const whisper_params & params, std::vector> pcmf32s) {
+ std::ofstream fout(fname);
+ if (!fout.is_open()) {
+ fprintf(stderr, "%s: failed to open '%s' for writing\n", __func__, fname);
+ return false;
+ }
+
+ fprintf(stderr, "%s: saving output to '%s'\n", __func__, fname);
+
+ const int n_segments = whisper_full_n_segments(ctx);
+ for (int i = 0; i < n_segments; ++i) {
+ const char * text = whisper_full_get_segment_text(ctx, i);
+ const int64_t t0 = whisper_full_get_segment_t0(ctx, i);
+ const int64_t t1 = whisper_full_get_segment_t1(ctx, i);
+ std::string speaker = "";
+
+ if (params.diarize && pcmf32s.size() == 2)
+ {
+ speaker = estimate_diarization_speaker(pcmf32s, t0, t1);
+ }
+
+ fout << i + 1 + params.offset_n << "\n";
+ fout << to_timestamp(t0, true) << " --> " << to_timestamp(t1, true) << "\n";
+ fout << speaker << text << "\n\n";
+ }
+
+ return true;
+}
+
+char *escape_double_quotes_and_backslashes(const char *str) {
+ if (str == NULL) {
+ return NULL;
+ }
+
+ size_t escaped_length = strlen(str) + 1;
+
+ for (size_t i = 0; str[i] != '\0'; i++) {
+ if (str[i] == '"' || str[i] == '\\') {
+ escaped_length++;
+ }
+ }
+
+ char *escaped = (char *)calloc(escaped_length, 1); // pre-zeroed
+ if (escaped == NULL) {
+ return NULL;
+ }
+
+ size_t pos = 0;
+ for (size_t i = 0; str[i] != '\0'; i++) {
+ if (str[i] == '"' || str[i] == '\\') {
+ escaped[pos++] = '\\';
+ }
+ escaped[pos++] = str[i];
+ }
+
+ // no need to set zero due to calloc() being used prior
+
+ return escaped;
+}
+
+bool output_csv(struct whisper_context * ctx, const char * fname, const whisper_params & params, std::vector> pcmf32s) {
+ std::ofstream fout(fname);
+ if (!fout.is_open()) {
+ fprintf(stderr, "%s: failed to open '%s' for writing\n", __func__, fname);
+ return false;
+ }
+
+ fprintf(stderr, "%s: saving output to '%s'\n", __func__, fname);
+
+ const int n_segments = whisper_full_n_segments(ctx);
+ fout << "start,end,";
+ if (params.diarize && pcmf32s.size() == 2)
+ {
+ fout << "speaker,";
+ }
+ fout << "text\n";
+
+ for (int i = 0; i < n_segments; ++i) {
+ const char * text = whisper_full_get_segment_text(ctx, i);
+ const int64_t t0 = whisper_full_get_segment_t0(ctx, i);
+ const int64_t t1 = whisper_full_get_segment_t1(ctx, i);
+ char * text_escaped = escape_double_quotes_and_backslashes(text);
+
+ //need to multiply times returned from whisper_full_get_segment_t{0,1}() by 10 to get milliseconds.
+ fout << 10 * t0 << "," << 10 * t1 << ",";
+ if (params.diarize && pcmf32s.size() == 2)
+ {
+ fout << estimate_diarization_speaker(pcmf32s, t0, t1, true) << ",";
+ }
+ fout << "\"" << text_escaped << "\"\n";
+ }
+
+ return true;
+}
+
+bool output_score(struct whisper_context * ctx, const char * fname, const whisper_params & /*params*/, std::vector> /*pcmf32s*/) {
+ std::ofstream fout(fname);
+ fprintf(stderr, "%s: saving output to '%s'\n", __func__, fname);
+
+ const int n_segments = whisper_full_n_segments(ctx);
+ // fprintf(stderr,"segments: %d\n",n_segments);
+ for (int i = 0; i < n_segments; ++i) {
+ const int n_tokens = whisper_full_n_tokens(ctx, i);
+ // fprintf(stderr,"tokens: %d\n",n_tokens);
+ for (int j = 0; j < n_tokens; j++) {
+ auto token = whisper_full_get_token_text(ctx, i, j);
+ auto probability = whisper_full_get_token_p(ctx, i, j);
+ fout << token << '\t' << probability << std::endl;
+ // fprintf(stderr,"token: %s %f\n",token,probability);
+ }
+ }
+ return true;
+}
+
+bool output_json(
+ struct whisper_context * ctx,
+ const char * fname,
+ const whisper_params & params,
+ std::vector> pcmf32s,
+ bool full) {
+ std::ofstream fout(fname);
+ int indent = 0;
+
+ auto doindent = [&]() {
+ for (int i = 0; i < indent; i++) fout << "\t";
+ };
+
+ auto start_arr = [&](const char *name) {
+ doindent();
+ fout << "\"" << name << "\": [\n";
+ indent++;
+ };
+
+ auto end_arr = [&](bool end) {
+ indent--;
+ doindent();
+ fout << (end ? "]\n" : "],\n");
+ };
+
+ auto start_obj = [&](const char *name) {
+ doindent();
+ if (name) {
+ fout << "\"" << name << "\": {\n";
+ } else {
+ fout << "{\n";
+ }
+ indent++;
+ };
+
+ auto end_obj = [&](bool end) {
+ indent--;
+ doindent();
+ fout << (end ? "}\n" : "},\n");
+ };
+
+ auto start_value = [&](const char *name) {
+ doindent();
+ fout << "\"" << name << "\": ";
+ };
+
+ auto value_s = [&](const char *name, const char *val, bool end) {
+ start_value(name);
+ char * val_escaped = escape_double_quotes_and_backslashes(val);
+ fout << "\"" << val_escaped << (end ? "\"\n" : "\",\n");
+ free(val_escaped);
+ };
+
+ auto end_value = [&](bool end) {
+ fout << (end ? "\n" : ",\n");
+ };
+
+ auto value_i = [&](const char *name, const int64_t val, bool end) {
+ start_value(name);
+ fout << val;
+ end_value(end);
+ };
+
+ auto value_f = [&](const char *name, const float val, bool end) {
+ start_value(name);
+ fout << val;
+ end_value(end);
+ };
+
+ auto value_b = [&](const char *name, const bool val, bool end) {
+ start_value(name);
+ fout << (val ? "true" : "false");
+ end_value(end);
+ };
+
+ auto times_o = [&](int64_t t0, int64_t t1, bool end) {
+ start_obj("timestamps");
+ value_s("from", to_timestamp(t0, true).c_str(), false);
+ value_s("to", to_timestamp(t1, true).c_str(), true);
+ end_obj(false);
+ start_obj("offsets");
+ value_i("from", t0 * 10, false);
+ value_i("to", t1 * 10, true);
+ end_obj(end);
+ };
+
+ if (!fout.is_open()) {
+ fprintf(stderr, "%s: failed to open '%s' for writing\n", __func__, fname);
+ return false;
+ }
+
+ fprintf(stderr, "%s: saving output to '%s'\n", __func__, fname);
+ start_obj(nullptr);
+ value_s("systeminfo", whisper_print_system_info(), false);
+ start_obj("model");
+ value_s("type", whisper_model_type_readable(ctx), false);
+ value_b("multilingual", whisper_is_multilingual(ctx), false);
+ value_i("vocab", whisper_model_n_vocab(ctx), false);
+ start_obj("audio");
+ value_i("ctx", whisper_model_n_audio_ctx(ctx), false);
+ value_i("state", whisper_model_n_audio_state(ctx), false);
+ value_i("head", whisper_model_n_audio_head(ctx), false);
+ value_i("layer", whisper_model_n_audio_layer(ctx), true);
+ end_obj(false);
+ start_obj("text");
+ value_i("ctx", whisper_model_n_text_ctx(ctx), false);
+ value_i("state", whisper_model_n_text_state(ctx), false);
+ value_i("head", whisper_model_n_text_head(ctx), false);
+ value_i("layer", whisper_model_n_text_layer(ctx), true);
+ end_obj(false);
+ value_i("mels", whisper_model_n_mels(ctx), false);
+ value_i("ftype", whisper_model_ftype(ctx), true);
+ end_obj(false);
+ start_obj("params");
+ value_s("model", params.model.c_str(), false);
+ value_s("language", params.language.c_str(), false);
+ value_b("translate", params.translate, true);
+ end_obj(false);
+ start_obj("result");
+ value_s("language", whisper_lang_str(whisper_full_lang_id(ctx)), true);
+ end_obj(false);
+ start_arr("transcription");
+
+ const int n_segments = whisper_full_n_segments(ctx);
+ for (int i = 0; i < n_segments; ++i) {
+ const char * text = whisper_full_get_segment_text(ctx, i);
+
+ const int64_t t0 = whisper_full_get_segment_t0(ctx, i);
+ const int64_t t1 = whisper_full_get_segment_t1(ctx, i);
+
+ start_obj(nullptr);
+ times_o(t0, t1, false);
+ value_s("text", text, !params.diarize && !params.tinydiarize && !full);
+
+ if (full) {
+ start_arr("tokens");
+ const int n = whisper_full_n_tokens(ctx, i);
+ for (int j = 0; j < n; ++j) {
+ auto token = whisper_full_get_token_data(ctx, i, j);
+ start_obj(nullptr);
+ value_s("text", whisper_token_to_str(ctx, token.id), false);
+ if(token.t0 > -1 && token.t1 > -1) {
+ // If we have per-token timestamps, write them out
+ times_o(token.t0, token.t1, false);
+ }
+ value_i("id", token.id, false);
+ value_f("p", token.p, false);
+ value_f("t_dtw", token.t_dtw, true);
+ end_obj(j == (n - 1));
+ }
+ end_arr(!params.diarize && !params.tinydiarize);
+ }
+
+ if (params.diarize && pcmf32s.size() == 2) {
+ value_s("speaker", estimate_diarization_speaker(pcmf32s, t0, t1, true).c_str(), true);
+ }
+
+ if (params.tinydiarize) {
+ value_b("speaker_turn_next", whisper_full_get_segment_speaker_turn_next(ctx, i), true);
+ }
+ end_obj(i == (n_segments - 1));
+ }
+
+ end_arr(true);
+ end_obj(true);
+ return true;
+}
+
+// karaoke video generation
+// outputs a bash script that uses ffmpeg to generate a video with the subtitles
+// TODO: font parameter adjustments
+bool output_wts(struct whisper_context * ctx, const char * fname, const char * fname_inp, const whisper_params & params, float t_sec, std::vector> pcmf32s) {
+ std::ofstream fout(fname);
+
+ fprintf(stderr, "%s: saving output to '%s'\n", __func__, fname);
+
+ static const char * font = params.font_path.c_str();
+
+ std::ifstream fin(font);
+ if (!fin.is_open()) {
+ fprintf(stderr, "%s: font not found at '%s', please specify a monospace font with -fp\n", __func__, font);
+ return false;
+ }
+
+ fout << "#!/bin/bash" << "\n";
+ fout << "\n";
+
+ fout << "ffmpeg -i " << fname_inp << " -f lavfi -i color=size=1200x120:duration=" << t_sec << ":rate=25:color=black -vf \"";
+
+ for (int i = 0; i < whisper_full_n_segments(ctx); i++) {
+ const int64_t t0 = whisper_full_get_segment_t0(ctx, i);
+ const int64_t t1 = whisper_full_get_segment_t1(ctx, i);
+
+ const int n = whisper_full_n_tokens(ctx, i);
+
+ std::vector tokens(n);
+ for (int j = 0; j < n; ++j) {
+ tokens[j] = whisper_full_get_token_data(ctx, i, j);
+ }
+
+ if (i > 0) {
+ fout << ",";
+ }
+
+ // background text
+ fout << "drawtext=fontfile='" << font << "':fontsize=24:fontcolor=gray:x=(w-text_w)/2:y=h/2:text='':enable='between(t," << t0/100.0 << "," << t0/100.0 << ")'";
+
+ bool is_first = true;
+ std::string speaker = "";
+
+ if (params.diarize && pcmf32s.size() == 2) {
+ speaker = estimate_diarization_speaker(pcmf32s, t0, t1);
+ }
+
+ for (int j = 0; j < n; ++j) {
+ const auto & token = tokens[j];
+
+ if (tokens[j].id >= whisper_token_eot(ctx)) {
+ continue;
+ }
+
+ std::string txt_bg = "";
+ std::string txt_fg = ""; // highlight token
+ std::string txt_ul = ""; // underline
+
+ if (params.diarize && pcmf32s.size() == 2) {
+ txt_bg = speaker;
+ txt_fg = speaker;
+ txt_ul = "\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ ";
+ }
+
+ txt_bg.append("> ");
+ txt_fg.append("> ");
+ txt_ul.append("\\ \\ ");
+
+ {
+ for (int k = 0; k < n; ++k) {
+ const auto & token2 = tokens[k];
+
+ if (tokens[k].id >= whisper_token_eot(ctx)) {
+ continue;
+ }
+
+ const std::string txt = whisper_token_to_str(ctx, token2.id);
+
+ txt_bg += txt;
+
+ if (k == j) {
+ for (int l = 0; l < (int) txt.size(); ++l) {
+ txt_fg += txt[l];
+ txt_ul += "_";
+ }
+ txt_fg += "|";
+ } else {
+ for (int l = 0; l < (int) txt.size(); ++l) {
+ txt_fg += "\\ ";
+ txt_ul += "\\ ";
+ }
+ }
+ }
+
+ ::replace_all(txt_bg, "'", "\u2019");
+ ::replace_all(txt_bg, "\"", "\\\"");
+ ::replace_all(txt_fg, "'", "\u2019");
+ ::replace_all(txt_fg, "\"", "\\\"");
+ }
+
+ if (is_first) {
+ // background text
+ fout << ",drawtext=fontfile='" << font << "':fontsize=24:fontcolor=gray:x=(w-text_w)/2:y=h/2:text='" << txt_bg << "':enable='between(t," << t0/100.0 << "," << t1/100.0 << ")'";
+ is_first = false;
+ }
+
+ // foreground text
+ fout << ",drawtext=fontfile='" << font << "':fontsize=24:fontcolor=lightgreen:x=(w-text_w)/2+8:y=h/2:text='" << txt_fg << "':enable='between(t," << token.t0/100.0 << "," << token.t1/100.0 << ")'";
+
+ // underline
+ fout << ",drawtext=fontfile='" << font << "':fontsize=24:fontcolor=lightgreen:x=(w-text_w)/2+8:y=h/2+16:text='" << txt_ul << "':enable='between(t," << token.t0/100.0 << "," << token.t1/100.0 << ")'";
+ }
+ }
+
+ fout << "\" -c:v libx264 -pix_fmt yuv420p -y " << fname_inp << ".mp4" << "\n";
+
+ fout << "\n\n";
+ fout << "echo \"Your video has been saved to " << fname_inp << ".mp4\"" << "\n";
+ fout << "\n";
+ fout << "echo \" ffplay " << fname_inp << ".mp4\"\n";
+ fout << "\n";
+
+ fout.close();
+
+ fprintf(stderr, "%s: run 'source %s' to generate karaoke video\n", __func__, fname);
+
+ return true;
+}
+
+bool output_lrc(struct whisper_context * ctx, const char * fname, const whisper_params & params, std::vector> pcmf32s) {
+ std::ofstream fout(fname);
+ if (!fout.is_open()) {
+ fprintf(stderr, "%s: failed to open '%s' for writing\n", __func__, fname);
+ return false;
+ }
+
+ fprintf(stderr, "%s: saving output to '%s'\n", __func__, fname);
+
+ fout << "[by:whisper.cpp]\n";
+
+ const int n_segments = whisper_full_n_segments(ctx);
+ for (int i = 0; i < n_segments; ++i) {
+ const char * text = whisper_full_get_segment_text(ctx, i);
+ const int64_t t = whisper_full_get_segment_t0(ctx, i);
+
+ int64_t msec = t * 10;
+ int64_t min = msec / (1000 * 60);
+ msec = msec - min * (1000 * 60);
+ int64_t sec = msec / 1000;
+ msec = msec - sec * 1000;
+
+ char buf[16];
+ snprintf(buf, sizeof(buf), "%02d:%02d.%02d", (int) min, (int) sec, (int) ( msec / 10));
+ std::string timestamp_lrc = std::string(buf);
+ std::string speaker = "";
+
+ if (params.diarize && pcmf32s.size() == 2)
+ {
+ const int64_t t0 = whisper_full_get_segment_t0(ctx, i);
+ const int64_t t1 = whisper_full_get_segment_t1(ctx, i);
+ speaker = estimate_diarization_speaker(pcmf32s, t0, t1);
+ }
+
+ fout << '[' << timestamp_lrc << ']' << speaker << text << "\n";
+ }
+
+ return true;
+}
+
+
+void cb_log_disable(enum ggml_log_level , const char * , void * ) { }
+
+int main(int argc, char ** argv) {
+ whisper_params params;
+
+ if (whisper_params_parse(argc, argv, params) == false) {
+ whisper_print_usage(argc, argv, params);
+ return 1;
+ }
+
+ // remove non-existent files
+ for (auto it = params.fname_inp.begin(); it != params.fname_inp.end();) {
+ const auto fname_inp = it->c_str();
+
+ if (*it != "-" && !is_file_exist(fname_inp)) {
+ fprintf(stderr, "error: input file not found '%s'\n", fname_inp);
+ it = params.fname_inp.erase(it);
+ continue;
+ }
+
+ it++;
+ }
+
+ if (params.fname_inp.empty()) {
+ fprintf(stderr, "error: no input files specified\n");
+ whisper_print_usage(argc, argv, params);
+ return 2;
+ }
+
+ if (params.language != "auto" && whisper_lang_id(params.language.c_str()) == -1) {
+ fprintf(stderr, "error: unknown language '%s'\n", params.language.c_str());
+ whisper_print_usage(argc, argv, params);
+ exit(0);
+ }
+
+ if (params.diarize && params.tinydiarize) {
+ fprintf(stderr, "error: cannot use both --diarize and --tinydiarize\n");
+ whisper_print_usage(argc, argv, params);
+ exit(0);
+ }
+
+ if (params.no_prints) {
+ whisper_log_set(cb_log_disable, NULL);
+ }
+
+ // whisper init
+
+ if (params.use_cuda) {
+ s_ggmlBackendType |= GGML_BACKEND_CUBLAST;
+ } else if (params.use_opencl) {
+ s_ggmlBackendType |= GGML_BACKEND_CLBLAST;
+ }
+ struct whisper_context_params cparams = whisper_context_default_params();
+ cparams.use_gpu = params.use_gpu | params.use_cuda;
+
+ if (!params.dtw.empty()) {
+ cparams.dtw_token_timestamps = true;
+ cparams.dtw_aheads_preset = WHISPER_AHEADS_NONE;
+
+ if (params.dtw == "tiny") cparams.dtw_aheads_preset = WHISPER_AHEADS_TINY;
+ if (params.dtw == "tiny.en") cparams.dtw_aheads_preset = WHISPER_AHEADS_TINY_EN;
+ if (params.dtw == "base") cparams.dtw_aheads_preset = WHISPER_AHEADS_BASE;
+ if (params.dtw == "base.en") cparams.dtw_aheads_preset = WHISPER_AHEADS_BASE_EN;
+ if (params.dtw == "small") cparams.dtw_aheads_preset = WHISPER_AHEADS_SMALL;
+ if (params.dtw == "small.en") cparams.dtw_aheads_preset = WHISPER_AHEADS_SMALL_EN;
+ if (params.dtw == "medium") cparams.dtw_aheads_preset = WHISPER_AHEADS_MEDIUM;
+ if (params.dtw == "medium.en") cparams.dtw_aheads_preset = WHISPER_AHEADS_MEDIUM_EN;
+ if (params.dtw == "large.v1") cparams.dtw_aheads_preset = WHISPER_AHEADS_LARGE_V1;
+ if (params.dtw == "large.v2") cparams.dtw_aheads_preset = WHISPER_AHEADS_LARGE_V2;
+ if (params.dtw == "large.v3") cparams.dtw_aheads_preset = WHISPER_AHEADS_LARGE_V3;
+
+ if (cparams.dtw_aheads_preset == WHISPER_AHEADS_NONE) {
+ fprintf(stderr, "error: unknown DTW preset '%s'\n", params.dtw.c_str());
+ return 3;
+ }
+ }
+
+ struct whisper_context * ctx = whisper_init_from_file_with_params(params.model.c_str(), cparams);
+
+ if (ctx == nullptr) {
+ fprintf(stderr, "error: failed to initialize whisper context\n");
+ return 3;
+ }
+
+ // if openvino enabled
+ if (params.openvino) {
+ // initialize openvino encoder. this has no effect on whisper.cpp builds that don't have OpenVINO configured
+ whisper_ctx_init_openvino_encoder(ctx, nullptr, params.openvino_encode_device.c_str(), nullptr);
+ }
+ for (int f = 0; f < (int) params.fname_inp.size(); ++f) {
+ const auto fname_inp = params.fname_inp[f];
+ const auto fname_out = f < (int) params.fname_out.size() && !params.fname_out[f].empty() ? params.fname_out[f] : params.fname_inp[f];
+
+ std::vector pcmf32; // mono-channel F32 PCM
+ std::vector> pcmf32s; // stereo-channel F32 PCM
+
+ if (!::read_wav(fname_inp, pcmf32, pcmf32s, params.diarize)) {
+ fprintf(stderr, "error: failed to read WAV file '%s'\n", fname_inp.c_str());
+ continue;
+ }
+
+ if (!whisper_is_multilingual(ctx)) {
+ if (params.language != "en" || params.translate) {
+ params.language = "en";
+ params.translate = false;
+ fprintf(stderr, "%s: WARNING: model is not multilingual, ignoring language and translation options\n", __func__);
+ }
+ }
+ if (params.detect_language) {
+ params.language = "auto";
+ }
+
+ if (!params.no_prints) {
+ // print system information
+ fprintf(stderr, "\n");
+ fprintf(stderr, "system_info: n_threads = %d / %d | %s\n",
+ params.n_threads*params.n_processors, std::thread::hardware_concurrency(), whisper_print_system_info());
+
+ // print some info about the processing
+ fprintf(stderr, "\n");
+ fprintf(stderr, "%s: processing '%s' (%d samples, %.1f sec), %d threads, %d processors, %d beams + best of %d, lang = %s, task = %s, %stimestamps = %d ...\n",
+ __func__, fname_inp.c_str(), int(pcmf32.size()), float(pcmf32.size())/WHISPER_SAMPLE_RATE,
+ params.n_threads, params.n_processors, params.beam_size, params.best_of,
+ params.language.c_str(),
+ params.translate ? "translate" : "transcribe",
+ params.tinydiarize ? "tdrz = 1, " : "",
+ params.no_timestamps ? 0 : 1);
+
+ fprintf(stderr, "\n");
+ }
+
+ // run the inference
+ {
+ whisper_full_params wparams = whisper_full_default_params(WHISPER_SAMPLING_GREEDY);
+
+ wparams.strategy = params.beam_size > 1 ? WHISPER_SAMPLING_BEAM_SEARCH : WHISPER_SAMPLING_GREEDY;
+
+ wparams.print_realtime = false;
+ wparams.print_progress = params.print_progress;
+ wparams.print_timestamps = !params.no_timestamps;
+ wparams.print_special = params.print_special;
+ wparams.translate = params.translate;
+ wparams.language = params.language.c_str();
+ wparams.detect_language = params.detect_language;
+ wparams.n_threads = params.n_threads;
+ wparams.n_max_text_ctx = params.max_context >= 0 ? params.max_context : wparams.n_max_text_ctx;
+ wparams.offset_ms = params.offset_t_ms;
+ wparams.duration_ms = params.duration_ms;
+
+ wparams.token_timestamps = params.output_wts || params.output_jsn_full || params.max_len > 0;
+ wparams.thold_pt = params.word_thold;
+ wparams.max_len = params.output_wts && params.max_len == 0 ? 60 : params.max_len;
+ wparams.split_on_word = params.split_on_word;
+ wparams.audio_ctx = params.audio_ctx;
+
+ wparams.speed_up = params.speed_up;
+ wparams.debug_mode = params.debug_mode;
+
+ wparams.tdrz_enable = params.tinydiarize; // [TDRZ]
+
+ wparams.initial_prompt = params.prompt.c_str();
+
+ wparams.greedy.best_of = params.best_of;
+ wparams.beam_search.beam_size = params.beam_size;
+
+ wparams.temperature_inc = params.no_fallback ? 0.0f : wparams.temperature_inc;
+ wparams.entropy_thold = params.entropy_thold;
+ wparams.logprob_thold = params.logprob_thold;
+
+ wparams.no_timestamps = params.no_timestamps;
+
+ whisper_print_user_data user_data = { ¶ms, &pcmf32s, 0 };
+
+ // this callback is called on each new segment
+ if (!wparams.print_realtime) {
+ wparams.new_segment_callback = whisper_print_segment_callback;
+ wparams.new_segment_callback_user_data = &user_data;
+ }
+
+ if (wparams.print_progress) {
+ wparams.progress_callback = whisper_print_progress_callback;
+ wparams.progress_callback_user_data = &user_data;
+ }
+
+ // examples for abort mechanism
+ // in examples below, we do not abort the processing, but we could if the flag is set to true
+
+ // the callback is called before every encoder run - if it returns false, the processing is aborted
+ {
+ static bool is_aborted = false; // NOTE: this should be atomic to avoid data race
+
+ wparams.encoder_begin_callback = [](struct whisper_context * /*ctx*/, struct whisper_state * /*state*/, void * user_data) {
+ bool is_aborted = *(bool*)user_data;
+ return !is_aborted;
+ };
+ wparams.encoder_begin_callback_user_data = &is_aborted;
+ }
+
+ // the callback is called before every computation - if it returns true, the computation is aborted
+ {
+ static bool is_aborted = false; // NOTE: this should be atomic to avoid data race
+
+ wparams.abort_callback = [](void * user_data) {
+ bool is_aborted = *(bool*)user_data;
+ return is_aborted;
+ };
+ wparams.abort_callback_user_data = &is_aborted;
+ }
+
+ if (whisper_full_parallel(ctx, wparams, pcmf32.data(), pcmf32.size(), params.n_processors) != 0) {
+ fprintf(stderr, "%s: failed to process audio\n", argv[0]);
+ return 10;
+ }
+ }
+
+ // output stuff
+ {
+ printf("\n");
+
+ // output to text file
+ if (params.output_txt) {
+ const auto fname_txt = fname_out + ".txt";
+ output_txt(ctx, fname_txt.c_str(), params, pcmf32s);
+ }
+
+ // output to VTT file
+ if (params.output_vtt) {
+ const auto fname_vtt = fname_out + ".vtt";
+ output_vtt(ctx, fname_vtt.c_str(), params, pcmf32s);
+ }
+
+ // output to SRT file
+ if (params.output_srt) {
+ const auto fname_srt = fname_out + ".srt";
+ output_srt(ctx, fname_srt.c_str(), params, pcmf32s);
+ }
+
+ // output to WTS file
+ if (params.output_wts) {
+ const auto fname_wts = fname_out + ".wts";
+ output_wts(ctx, fname_wts.c_str(), fname_inp.c_str(), params, float(pcmf32.size() + 1000)/WHISPER_SAMPLE_RATE, pcmf32s);
+ }
+
+ // output to CSV file
+ if (params.output_csv) {
+ const auto fname_csv = fname_out + ".csv";
+ output_csv(ctx, fname_csv.c_str(), params, pcmf32s);
+ }
+
+ // output to JSON file
+ if (params.output_jsn) {
+ const auto fname_jsn = fname_out + ".json";
+ output_json(ctx, fname_jsn.c_str(), params, pcmf32s, params.output_jsn_full);
+ }
+
+ // output to LRC file
+ if (params.output_lrc) {
+ const auto fname_lrc = fname_out + ".lrc";
+ output_lrc(ctx, fname_lrc.c_str(), params, pcmf32s);
+ }
+
+ // output to score file
+ if (params.log_score) {
+ const auto fname_score = fname_out + ".score.txt";
+ output_score(ctx, fname_score.c_str(), params, pcmf32s);
+ }
+ }
+ }
+
+ whisper_print_timings(ctx);
+ whisper_free(ctx);
+
+ DUMP_MEM();
+
+ return 0;
+}
diff --git a/examples/lsp/json.hpp b/examples/lsp/json.hpp
new file mode 100644
index 00000000000..4d1a37ad7cb
--- /dev/null
+++ b/examples/lsp/json.hpp
@@ -0,0 +1,24596 @@
+// __ _____ _____ _____
+// __| | __| | | | JSON for Modern C++
+// | | |__ | | | | | | version 3.11.2
+// |_____|_____|_____|_|___| https://github.com/nlohmann/json
+//
+// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann
+// SPDX-License-Identifier: MIT
+
+/****************************************************************************\
+ * Note on documentation: The source files contain links to the online *
+ * documentation of the public API at https://json.nlohmann.me. This URL *
+ * contains the most recent documentation and should also be applicable to *
+ * previous versions; documentation for deprecated functions is not *
+ * removed, but marked deprecated. See "Generate documentation" section in *
+ * file docs/README.md. *
+\****************************************************************************/
+
+#ifndef INCLUDE_NLOHMANN_JSON_HPP_
+#define INCLUDE_NLOHMANN_JSON_HPP_
+
+#include // all_of, find, for_each
+#include // nullptr_t, ptrdiff_t, size_t
+#include // hash, less
+#include // initializer_list
+#ifndef JSON_NO_IO
+ #include // istream, ostream
+#endif // JSON_NO_IO
+#include // random_access_iterator_tag
+#include // unique_ptr
+#include // accumulate
+#include // string, stoi, to_string
+#include // declval, forward, move, pair, swap
+#include // vector
+
+// #include
+// __ _____ _____ _____
+// __| | __| | | | JSON for Modern C++
+// | | |__ | | | | | | version 3.11.2
+// |_____|_____|_____|_|___| https://github.com/nlohmann/json
+//
+// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann
+// SPDX-License-Identifier: MIT
+
+
+
+#include
+
+// #include
+// __ _____ _____ _____
+// __| | __| | | | JSON for Modern C++
+// | | |__ | | | | | | version 3.11.2
+// |_____|_____|_____|_|___| https://github.com/nlohmann/json
+//
+// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann
+// SPDX-License-Identifier: MIT
+
+
+
+// This file contains all macro definitions affecting or depending on the ABI
+
+#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK
+ #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH)
+ #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 2
+ #warning "Already included a different version of the library!"
+ #endif
+ #endif
+#endif
+
+#define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum)
+#define NLOHMANN_JSON_VERSION_MINOR 11 // NOLINT(modernize-macro-to-enum)
+#define NLOHMANN_JSON_VERSION_PATCH 2 // NOLINT(modernize-macro-to-enum)
+
+#ifndef JSON_DIAGNOSTICS
+ #define JSON_DIAGNOSTICS 0
+#endif
+
+#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
+ #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0
+#endif
+
+#if JSON_DIAGNOSTICS
+ #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag
+#else
+ #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS
+#endif
+
+#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
+ #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp
+#else
+ #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON
+#endif
+
+#ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION
+ #define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0
+#endif
+
+// Construct the namespace ABI tags component
+#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b
+#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \
+ NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b)
+
+#define NLOHMANN_JSON_ABI_TAGS \
+ NLOHMANN_JSON_ABI_TAGS_CONCAT( \
+ NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \
+ NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON)
+
+// Construct the namespace version component
+#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \
+ _v ## major ## _ ## minor ## _ ## patch
+#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \
+ NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)
+
+#if NLOHMANN_JSON_NAMESPACE_NO_VERSION
+#define NLOHMANN_JSON_NAMESPACE_VERSION
+#else
+#define NLOHMANN_JSON_NAMESPACE_VERSION \
+ NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \
+ NLOHMANN_JSON_VERSION_MINOR, \
+ NLOHMANN_JSON_VERSION_PATCH)
+#endif
+
+// Combine namespace components
+#define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b
+#define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \
+ NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)
+
+#ifndef NLOHMANN_JSON_NAMESPACE
+#define NLOHMANN_JSON_NAMESPACE \
+ nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \
+ NLOHMANN_JSON_ABI_TAGS, \
+ NLOHMANN_JSON_NAMESPACE_VERSION)
+#endif
+
+#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN
+#define NLOHMANN_JSON_NAMESPACE_BEGIN \
+ namespace nlohmann \
+ { \
+ inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \
+ NLOHMANN_JSON_ABI_TAGS, \
+ NLOHMANN_JSON_NAMESPACE_VERSION) \
+ {
+#endif
+
+#ifndef NLOHMANN_JSON_NAMESPACE_END
+#define NLOHMANN_JSON_NAMESPACE_END \
+ } /* namespace (inline namespace) NOLINT(readability/namespace) */ \
+ } // namespace nlohmann
+#endif
+
+// #include
+// __ _____ _____ _____
+// __| | __| | | | JSON for Modern C++
+// | | |__ | | | | | | version 3.11.2
+// |_____|_____|_____|_|___| https://github.com/nlohmann/json
+//
+// SPDX-FileCopyrightText: 2013-2022 Niels Lohmann
+// SPDX-License-Identifier: MIT
+
+
+
+#include // transform
+#include // array
+#include // forward_list
+#include // inserter, front_inserter, end
+#include