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

KonstantinSource codes8c4603c

master
1.1 KiB37 linesraw
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{
9	CAtlFile file;
10	// TODO: implement a buffer in this class, at least 256kb
11
12	HRESULT COMLIGHTCALL read( void* lpBuffer, int nNumberOfBytesToRead, int& lpNumberOfBytesRead ) override final
13	{
14		return file.Read( lpBuffer, (DWORD)nNumberOfBytesToRead, *(DWORD*)&lpNumberOfBytesRead );
15	}
16	HRESULT COMLIGHTCALL seek( int64_t offset, ComLight::eSeekOrigin origin ) override final
17	{
18		return file.Seek( offset, (uint8_t)origin );
19	}
20	HRESULT COMLIGHTCALL getPosition( int64_t& position ) override final
21	{
22		return file.GetPosition( *(ULONGLONG*)&position );
23	}
24	HRESULT COMLIGHTCALL getLength( int64_t& length ) override final
25	{
26		return file.GetSize( *(ULONGLONG*)&length );
27	}
28
29public:
30
31	HRESULT open( const wchar_t* path )
32	{
33		if( file )
34			return HRESULT_CODE( ERROR_ALREADY_INITIALIZED );
35		return file.Create( path, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN );
36	}
37};