yum-archive/TaSTT-Whisper
High-performance GPGPU inference of OpenAI's Whisper automatic speech recognition (ASR) model
git clone https://git.yummers.dev/yum-archive/TaSTT-Whisper
8c4603c
master
1#pragma once 2#include "../ComLightLib/streams.h" 3#include "../ComLightLib/comLightServer.h" 4#define WIN32_LEAN_AND_MEAN 5#include <atlfile.h> 6 7class ReadStream :public ComLight ::ObjectRoot < ComLight ::iReadStream > 8{ 9CAtlFile file ; 10// TODO: implement a buffer in this class, at least 256kb 11 12HRESULT COMLIGHTCALL read (void * lpBuffer ,int nNumberOfBytesToRead ,int & lpNumberOfBytesRead )override final 13 { 14return file .Read (lpBuffer , (DWORD )nNumberOfBytesToRead ,* (DWORD * )& lpNumberOfBytesRead ); 15 } 16HRESULT COMLIGHTCALL seek (int64_t offset ,ComLight ::eSeekOrigin origin )override final 17 { 18return file .Seek (offset , (uint8_t )origin ); 19 } 20HRESULT COMLIGHTCALL getPosition (int64_t & position )override final 21 { 22return file .GetPosition (* (ULONGLONG * )& position ); 23 } 24HRESULT COMLIGHTCALL getLength (int64_t & length )override final 25 { 26return file .GetSize (* (ULONGLONG * )& length ); 27 } 28 29public : 30 31HRESULT open (const wchar_t * path ) 32 { 33if (file ) 34return HRESULT_CODE (ERROR_ALREADY_INITIALIZED ); 35return file .Create (path ,GENERIC_READ ,FILE_SHARE_READ ,OPEN_EXISTING ,FILE_ATTRIBUTE_NORMAL |FILE_FLAG_SEQUENTIAL_SCAN ); 36 } 37};