From ef402b867aa0fcfe8b8c7592cd38dfdd6bfa72a5 Mon Sep 17 00:00:00 2001 From: Michael Schimmel Date: Wed, 4 Feb 2026 12:23:55 +0100 Subject: [PATCH] Whisper-Test --- Whisper/Token.inc | 2 + Whisper/WhisperMain.fmx | 88 +++ Whisper/WhisperMain.pas | 439 +++++++++++ Whisper/WhisperTest.delphilsp.json | 1 + Whisper/WhisperTest.dpr | 14 + Whisper/WhisperTest.dproj | 1137 ++++++++++++++++++++++++++++ Whisper/WhisperTest.res | Bin 0 -> 154804 bytes Whisper/prompt.md | 28 + 8 files changed, 1709 insertions(+) create mode 100644 Whisper/Token.inc create mode 100644 Whisper/WhisperMain.fmx create mode 100644 Whisper/WhisperMain.pas create mode 100644 Whisper/WhisperTest.delphilsp.json create mode 100644 Whisper/WhisperTest.dpr create mode 100644 Whisper/WhisperTest.dproj create mode 100644 Whisper/WhisperTest.res create mode 100644 Whisper/prompt.md diff --git a/Whisper/Token.inc b/Whisper/Token.inc new file mode 100644 index 0000000..7fd4f8d --- /dev/null +++ b/Whisper/Token.inc @@ -0,0 +1,2 @@ +const Ionos_Token := 'eyJ0eXAiOiJKV1QiLCJraWQiOiJmNDQwYzAxNi0zNDRjLTQ3MDktOWYxYS05MjgzZjY1Yjg1OWYiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJpb25vc2Nsb3VkIiwiaWF0IjoxNzcwMTI2OTIxLCJjbGllbnQiOiJVU0VSIiwiaWRlbnRpdHkiOnsicmVzZWxsZXJJZCI6MSwicmVnRG9tYWluIjoiaW9ub3MuZGUiLCJyb2xlIjoib3duZXIiLCJjb250cmFjdE51bWJlciI6MzcyNzM0MjcsImlzUGFyZW50IjpmYWxzZSwicHJpdmlsZWdlcyI6WyJEQVRBX0NFTlRFUl9DUkVBVEUiLCJTTkFQU0hPVF9DUkVBVEUiLCJJUF9CTE9DS19SRVNFUlZFIiwiTUFOQUdFX0RBVEFQTEFURk9STSIsIkFDQ0VTU19BQ1RJVklUWV9MT0ciLCJQQ0NfQ1JFQVRFIiwiQUNDRVNTX1MzX09CSkVDVF9TVE9SQUdFIiwiQkFDS1VQX1VOSVRfQ1JFQVRFIiwiQ1JFQVRFX0lOVEVSTkVUX0FDQ0VTUyIsIks4U19DTFVTVEVSX0NSRUFURSIsIkZMT1dfTE9HX0NSRUFURSIsIkFDQ0VTU19BTkRfTUFOQUdFX01PTklUT1JJTkciLCJBQ0NFU1NfQU5EX01BTkFHRV9DRVJUSUZJQ0FURVMiLCJBQ0NFU1NfQU5EX01BTkFHRV9MT0dHSU5HIiwiTUFOQUdFX0RCQUFTIiwiQUNDRVNTX0FORF9NQU5BR0VfRE5TIiwiTUFOQUdFX1JFR0lTVFJZIiwiQUNDRVNTX0FORF9NQU5BR0VfQ0ROIiwiQUNDRVNTX0FORF9NQU5BR0VfVlBOIiwiQUNDRVNTX0FORF9NQU5BR0VfQVBJX0dBVEVXQVkiLCJBQ0NFU1NfQU5EX01BTkFHRV9OR1MiLCJBQ0NFU1NfQU5EX01BTkFHRV9LQUFTIiwiQUNDRVNTX0FORF9NQU5BR0VfTkVUV09SS19GSUxFX1NUT1JBR0UiLCJBQ0NFU1NfQU5EX01BTkFHRV9BSV9NT0RFTF9IVUIiLCJDUkVBVEVfTkVUV09SS19TRUNVUklUWV9HUk9VUFMiLCJBQ0NFU1NfQU5EX01BTkFHRV9JQU1fUkVTT1VSQ0VTIl0sInV1aWQiOiIwYTRlYjRhNi1hODUwLTQ0NTMtODhlYS0zYzA3YWM3NGE3ODAifSwiZXhwIjoxNzcwNzMxNzIxfQ.g6iVxzHfzgUntUmtRSCY_5L8bLXQ35TKoXyxkxpMUlP9XzpgP1-dwceJQDuJSMfROL5Yp5YpYVRbQG7ppKN2Hy_JUsR7NmXlcGP6oMFsLb4NjFf1SXB1JeScGOfCm-bCa7iCru3o25D4FruTmkCEoGzphkLkiY8iZMbIwQi6ICclcc3E8m4C2wsVhBk3EN7WOeFN023zaKBw4SxUDJvBH41slJaqvujS27wiLpOmWNdPkIXoohRWVQH_2GaHvP-t3CqadSMafZNSmihQKSYZ6biRR-LMlFP6DT4LXxHcFEKjWofB2EFsX1oANpqoL7U4DulkKhZ2shFWLVefJCE3kQ'; + end; diff --git a/Whisper/WhisperMain.fmx b/Whisper/WhisperMain.fmx new file mode 100644 index 0000000..7adcd24 --- /dev/null +++ b/Whisper/WhisperMain.fmx @@ -0,0 +1,88 @@ +object Form1: TForm1 + Left = 0 + Top = 0 + Caption = 'Form1' + ClientHeight = 757 + ClientWidth = 771 + FormFactor.Width = 320 + FormFactor.Height = 480 + FormFactor.Devices = [Desktop] + OnCreate = FormCreate + DesignerMasterStyle = 0 + object RecordButton: TButton + Position.X = 56.000000000000000000 + Position.Y = 24.000000000000000000 + Size.Width = 113.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + TabOrder = 0 + Text = 'Record' + OnClick = RecordButtonClick + end + object LogMemo: TMemo + Touch.InteractiveGestures = [Pan, LongTap, DoubleTap] + DataDetectorTypes = [] + Anchors = [akLeft, akTop, akRight] + Position.X = 8.000000000000000000 + Position.Y = 84.000000000000000000 + Size.Width = 755.000000000000000000 + Size.Height = 77.000000000000000000 + Size.PlatformDefault = False + TabOrder = 1 + Viewport.Width = 751.000000000000000000 + Viewport.Height = 73.000000000000000000 + end + object OutputMemo: TMemo + Touch.InteractiveGestures = [Pan, LongTap, DoubleTap] + DataDetectorTypes = [] + TextSettings.WordWrap = True + Anchors = [akLeft, akTop, akRight, akBottom] + Position.X = 8.000000000000000000 + Position.Y = 170.000000000000000000 + Size.Width = 755.000000000000000000 + Size.Height = 579.000000000000000000 + Size.PlatformDefault = False + TabOrder = 2 + Viewport.Width = 751.000000000000000000 + Viewport.Height = 575.000000000000000000 + end + object DebugCheckBox: TCheckBox + IsChecked = True + Position.X = 176.000000000000000000 + Position.Y = 57.000000000000000000 + TabOrder = 3 + Text = 'Debug-Ausgaben' + end + object InputMemo: TMemo + Touch.InteractiveGestures = [Pan, LongTap, DoubleTap] + DataDetectorTypes = [] + Lines.Strings = ( + + 'Patient, m'#228'nnlich, 64 Jahre alt, Vorstellung mit akuten retroste' + + 'rnalen Schmerzen, dauerhaft seit ca. 20 Minuten, Ausstrahlung in' + + ' den linken Arm, vegetative Symptomatik, Bl'#228'sse, Kaltschwei'#223'igke' + + 'it, Verdacht auf akuten Myokardinfarkt, Sofortige not'#228'rztliche A' + + 'larmierung und pr'#228'klinische Behandlung eingeleitet. Transport in' + + ' die n'#228'chste Klinik.') + TextSettings.WordWrap = True + Anchors = [akLeft, akTop, akRight] + Position.X = 304.000000000000000000 + Position.Y = 8.000000000000000000 + Size.Width = 459.000000000000000000 + Size.Height = 68.000000000000000000 + Size.PlatformDefault = False + TabOrder = 4 + Viewport.Width = 439.000000000000000000 + Viewport.Height = 64.000000000000000000 + end + object LLMButton: TButton + Position.X = 56.000000000000000000 + Position.Y = 54.000000000000000000 + Size.Width = 112.000000000000000000 + Size.Height = 22.000000000000000000 + Size.PlatformDefault = False + TabOrder = 5 + Text = 'LLM' + OnClick = LLMButtonClick + end +end diff --git a/Whisper/WhisperMain.pas b/Whisper/WhisperMain.pas new file mode 100644 index 0000000..ca65942 --- /dev/null +++ b/Whisper/WhisperMain.pas @@ -0,0 +1,439 @@ +unit WhisperMain; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Types, System.UITypes, + System.Classes, System.Variants, System.IOUtils, FMX.Types, FMX.Controls, + System.Net.Mime, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Memo.Types, + FMX.ScrollBox, FMX.Memo, FMX.Controls.Presentation, FMX.StdCtrls, + System.JSON, System.Net.HttpClient, System.Net.HttpClientComponent, + FMX.Media; + +type + TForm1 = class(TForm) + RecordButton: TButton; + LogMemo: TMemo; + OutputMemo: TMemo; + DebugCheckBox: TCheckBox; + InputMemo: TMemo; + LLMButton: TButton; + procedure FormCreate(Sender: TObject); + procedure RecordButtonClick(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure LLMButtonClick(Sender: TObject); + private + FCapture: TAudioCaptureDevice; + FIsRecording: Boolean; + FTempCapturePath: string; + + procedure Log(const Msg: string); + procedure LogDebug(const Msg: string); + + procedure SendToWhisperAsync(const SourceFile: string); + procedure QueryLLM(const UserInput: string); + + procedure StartCapture; + procedure StopCapture; + public + end; + +var + Form1: TForm1; + +implementation + +{$R *.fmx} + +{ TForm1 } + +procedure TForm1.FormCreate(Sender: TObject); +begin + FIsRecording := False; + RecordButton.Text := 'Start Recording'; +end; + +procedure TForm1.Log(const Msg: string); +begin + TThread.Queue(nil, + procedure + begin + LogMemo.Lines.Add(FormatDateTime('hh:nn:ss.zzz', Now) + ': ' + Msg); + LogMemo.GoToTextEnd; + end); +end; + +procedure TForm1.LogDebug(const Msg: string); +begin + if not DebugCheckBox.IsChecked then exit; + + TThread.Queue(nil, + procedure + begin + LogMemo.Lines.Add(FormatDateTime('hh:nn:ss.zzz', Now) + ' [DEBUG]: ' + Msg); + LogMemo.GoToTextEnd; + end); +end; + +procedure TForm1.StartCapture; +var + guid: TGUID; +begin + if FIsRecording then exit; + + FCapture := TCaptureDeviceManager.Current.DefaultAudioCaptureDevice; + if not Assigned(FCapture) then + begin + Log('Error: No Microphone found.'); + exit; + end; + + // Unique filename via GUID to prevent "File in use" errors + if CreateGUID(guid) = S_OK then + FTempCapturePath := TPath.Combine(TPath.GetTempPath, 'whisper_' + GUIDToString(guid) + '.wav') + else + FTempCapturePath := TPath.Combine(TPath.GetTempPath, 'whisper_' + GetTickCount64.ToString + '.wav'); + + FCapture.FileName := FTempCapturePath; + + try + FCapture.StartCapture; + FIsRecording := True; + RecordButton.Text := 'Stop Recording'; + Log('Recording started...'); + LogDebug('Capture path: ' + FTempCapturePath); + except + on E: Exception do + Log('Error starting capture: ' + E.Message); + end; +end; + +procedure TForm1.StopCapture; +begin + if not FIsRecording then exit; + + if Assigned(FCapture) then + begin + FCapture.StopCapture; + FIsRecording := False; + RecordButton.Text := 'Start Recording'; + LogDebug('Capture stopped.'); + end; +end; + +procedure TForm1.RecordButtonClick(Sender: TObject); +begin + if not FIsRecording then + StartCapture + else + begin + StopCapture; + if TFile.Exists(FTempCapturePath) then + begin + // Button sofort sperren und Status anzeigen + RecordButton.Enabled := False; + RecordButton.Text := 'Uploading...'; + SendToWhisperAsync(FTempCapturePath); + end + else + begin + Log('Error: Capture file not found.'); + RecordButton.Enabled := True; + RecordButton.Text := 'Start Recording'; + end; + end; +end; + +procedure TForm1.FormDestroy(Sender: TObject); +begin + if FIsRecording then + StopCapture; +end; + +procedure TForm1.LLMButtonClick(Sender: TObject); +var + UserText: string; +begin + UserText := InputMemo.Text.Trim; + if UserText.IsEmpty then exit; + + // UI Update immediate + InputMemo.Lines.Clear; + OutputMemo.Lines.Add('Me: ' + UserText); + + // Call API in background thread to avoid freezing the UI + TThread.CreateAnonymousThread( + procedure + begin + QueryLLM(UserText); + end).Start; +end; + +procedure TForm1.SendToWhisperAsync(const SourceFile: string); +begin + TThread.CreateAnonymousThread( + procedure + var + client: TNetHTTPClient; + formData: TMultipartFormData; + resp: IHTTPResponse; + jsonResp, jsonResult: TJSONObject; + taskID, status, transcriptionText: string; + url: string; + isDone: Boolean; + resVal, segmentsVal: TJSONValue; + segmentsArray: TJSONArray; + segmentObj: TJSONObject; + i: Integer; + sText: string; + begin + client := TNetHTTPClient.Create(nil); + formData := TMultipartFormData.Create; + try + try + url := 'http://minerva.lan:8000/service/transcribe?language=de&model=large-v3&device=cuda'; + formData.AddFile('file', SourceFile); + + resp := client.Post(url, formData); + + if resp.StatusCode = 200 then + begin + jsonResp := TJSONObject.ParseJSONValue(resp.ContentAsString(TEncoding.UTF8)) as TJSONObject; + if Assigned(jsonResp) and jsonResp.TryGetValue('identifier', taskID) then + begin + isDone := False; + transcriptionText := ''; + + // UI Update via Queue + TThread.Queue(nil, procedure begin RecordButton.Text := 'Transcribing...'; end); + + repeat + TThread.Sleep(500); + try + resp := client.Get('http://minerva.lan:8000/task/' + taskID); + if resp.StatusCode = 200 then + begin + jsonResult := TJSONObject.ParseJSONValue(resp.ContentAsString(TEncoding.UTF8)) as TJSONObject; + if Assigned(jsonResult) then + try + jsonResult.TryGetValue('status', status); + if status = 'completed' then + begin + resVal := jsonResult.GetValue('result'); + if (resVal is TJSONObject) and TJSONObject(resVal).TryGetValue('segments', segmentsVal) then + begin + segmentsArray := segmentsVal as TJSONArray; + for i := 0 to segmentsArray.Count - 1 do + begin + segmentObj := segmentsArray.Items[i] as TJSONObject; + if segmentObj.TryGetValue('text', sText) then + transcriptionText := transcriptionText + sText; + end; + end; + isDone := True; + end + else if (status = 'failed') or (status = 'error') then + isDone := True; + finally + jsonResult.Free; + end; + end; + except + on E: Exception do isDone := True; // Exit on polling error + end; + until isDone; + + if transcriptionText <> '' then + begin + transcriptionText := transcriptionText.Trim; + + // NEW: Put result into InputMemo instead of sending directly + TThread.Queue(nil, + procedure + begin + if InputMemo.Text.IsEmpty then + InputMemo.Text := transcriptionText + else + InputMemo.Text := InputMemo.Text + ' ' + transcriptionText; + end); + end; + end; + if Assigned(jsonResp) then jsonResp.Free; + end + else + Log('WhisperX Error (' + resp.StatusCode.ToString + '): ' + resp.StatusText); + except + on E: Exception do + Log('API Exception: ' + E.Message); + end; + finally + formData.Free; + client.Free; + if TFile.Exists(SourceFile) then TFile.Delete(SourceFile); + + // Button unter allen Umstaenden reaktivieren + TThread.Queue(nil, + procedure + begin + RecordButton.Text := 'Start Recording'; + RecordButton.Enabled := True; + end); + end; + end).Start; +end; + +procedure TForm1.QueryLLM(const UserInput: string); +var + client: TNetHTTPClient; + reqBody: TStringStream; + reqJson, msgObj: TJSONObject; + msgs: TJSONArray; + resp: IHTTPResponse; + respJson, messageObj: TJSONObject; + choices: TJSONArray; + choiceItem: TJSONObject; + content, refusal, reasoning, systemPrompt, promptPath, token, rawResponse: string; + tokenPath: string; + finishReason: string; +begin + // Load Token from Environment + token := GetEnvironmentVariable('IONOS_JWT'); + if token.IsEmpty then + begin + // Fallback: try to load from "Token.txt" in application directory +// tokenPath := TPath.Combine(ExtractFilePath(ParamStr(0)), 'Token.txt'); + tokenPath := 'C:\Users\Brummel\Downloads\f440c016-344c-4709-9f1a-9283f65b859f.txt'; + if TFile.Exists(tokenPath) then + begin + token := TFile.ReadAllText(tokenPath, TEncoding.UTF8).Trim; + end; + + if token.IsEmpty then + begin + Log('Error: IONOS_JWT environment variable not set and Token.txt missing or empty.'); + exit; + end; + end; + + promptPath := TPath.Combine(ExtractFilePath(ParamStr(0)), '..\..\Prompt.md'); + if TFile.Exists(promptPath) then + systemPrompt := TFile.ReadAllText(promptPath, TEncoding.UTF8) + else + systemPrompt := 'You are a helpful assistant.'; + + client := TNetHTTPClient.Create(nil); + reqJson := TJSONObject.Create; + try + // Set Headers + client.ContentType := 'application/json'; + client.CustomHeaders['Authorization'] := 'Bearer ' + token; + + // Build Request + reqJson.AddPair('model', 'openai/gpt-oss-120b'); + reqJson.AddPair('temperature', TJSONNumber.Create(0.6)); // Slightly lower temp for better adherence + // FIX: Increased token limit to allow reasoning + content + reqJson.AddPair('max_completion_tokens', TJSONNumber.Create(2048)); + + msgs := TJSONArray.Create; + + msgObj := TJSONObject.Create; + msgObj.AddPair('role', 'system'); + msgObj.AddPair('content', systemPrompt); + msgs.Add(msgObj); + + msgObj := TJSONObject.Create; + msgObj.AddPair('role', 'user'); + msgObj.AddPair('content', UserInput); + msgs.Add(msgObj); + + reqJson.AddPair('messages', msgs); + + reqBody := TStringStream.Create(reqJson.ToJSON, TEncoding.UTF8); + try + // Log Request for debugging + LogDebug('Sending Request to IONOS...'); + + resp := client.Post('https://openai.inference.de-txl.ionos.com/v1/chat/completions', reqBody); + + rawResponse := resp.ContentAsString(TEncoding.UTF8); + + if resp.StatusCode = 200 then + begin + // Log the full raw JSON to see exactly what is returned + LogDebug('Raw JSON Response: ' + rawResponse); + + respJson := TJSONObject.ParseJSONValue(rawResponse) as TJSONObject; + if Assigned(respJson) then + try + // 1. Check for 'choices' array + choices := respJson.GetValue('choices') as TJSONArray; + if (Assigned(choices)) and (choices.Count > 0) then + begin + choiceItem := choices.Items[0] as TJSONObject; + + // Check finish_reason for debugging + if choiceItem.TryGetValue('finish_reason', finishReason) then + begin + if finishReason = 'length' then + Log('Warning: Output truncated (Token limit reached).'); + end; + + // 2. Check for 'message' object inside choice + messageObj := choiceItem.GetValue('message') as TJSONObject; + if Assigned(messageObj) then + begin + // 3. Try to get 'content' + // Handle explicit null or missing content + if messageObj.TryGetValue('content', content) and (content <> '') then + begin + TThread.Queue(nil, procedure begin OutputMemo.Lines.Add('IONOS: ' + content); end); + end + // 4. Fallback: Check for 'refusal' + else if messageObj.TryGetValue('refusal', refusal) and (refusal <> '') then + begin + Log('Model Refusal: ' + refusal); + TThread.Queue(nil, procedure begin OutputMemo.Lines.Add('IONOS [Refusal]: ' + refusal); end); + end + // 5. Emergency Fallback: If content is null but reasoning exists (Token limit edge case) + else if messageObj.TryGetValue('reasoning', reasoning) then + begin + Log('Error: Content is empty, but reasoning was found. Token limit likely too low.'); + TThread.Queue(nil, procedure begin OutputMemo.Lines.Add('IONOS [Incomplete - Reasoning Only]: ' + reasoning); end); + end + else + begin + Log('Error: Message object has neither content, refusal nor reasoning.'); + end; + end + else + begin + Log('Error: No "message" object found in first choice.'); + end; + end + else + begin + Log('Error: "choices" array is missing or empty.'); + end; + finally + respJson.Free; + end + else + begin + Log('Error: Failed to parse JSON response.'); + end; + end + else + begin + Log('IONOS HTTP Error (' + resp.StatusCode.ToString + '): ' + resp.StatusText); + LogDebug('Error Body: ' + rawResponse); + end; + finally + reqBody.Free; + end; + finally + reqJson.Free; + client.Free; + end; +end; + +end. diff --git a/Whisper/WhisperTest.delphilsp.json b/Whisper/WhisperTest.delphilsp.json new file mode 100644 index 0000000..d3a47fc --- /dev/null +++ b/Whisper/WhisperTest.delphilsp.json @@ -0,0 +1 @@ +{ "settings": { "project": "file:///T%3A/mschimmel/Whisper/WhisperTest.dpr", "dllname": "dcc64370.dll", "dccOptions": "-$O- -$W+ -$R+ -$Q+ --no-config -Q -TX.exe -AGenerics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DDEBUG;;FRAMEWORK_FMX -E.\\Win64\\Debug -I\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win64\\debug\\DE\";\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win64\\debug\";\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win64\\release\\DE\";\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win64\\release\";C:\\Users\\Brummel\\Documents\\Embarcadero\\Studio\\37.0\\Imports\\Win64;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\Imports\";C:\\Users\\Public\\Documents\\Embarcadero\\Studio\\37.0\\Dcp\\Win64;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\include\";S:\\sc_famos_src\\svn_vcl\\Virtual-TreeView\\Source;S:\\sc_famos_src\\svn_vcl\\cpxedits;S:\\sc_famos_src\\svn_vcl\\dzChart;S:\\sc_famos_src\\svn_vcl\\eaeditor;S:\\sc_famos_src\\svn_vcl\\FamosEvents;S:\\sc_famos_src\\svn_vcl\\HTML_Viewer\\source;S:\\sc_famos_src\\svn_vcl\\Myc_ChartEdit;S:\\sc_famos_src\\svn_vcl\\Myc_HemiDrag;S:\\sc_famos_src\\svn_vcl\\Myc_SplitControl;S:\\sc_famos_src\\svn_vcl\\plotter;S:\\sc_famos_src\\svn_vcl\\SimpleIPC;S:\\sc_famos_src\\svn_vcl\\SynEdit-master\\Source;S:\\sc_famos_src\\svn_vcl\\ValEdits;S:\\sc_famos_src\\svn_vcl\\ZipMaster;S:\\sc_famos_src\\svn_common\\Myc_VecMath;\"C:\\Program Files (x86)\\DevExpress VCL\\Library\\RS28\\Win64\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressCore Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressCommon Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressGDI+ Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressLibrary\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\XP Theme Manager\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressLayout Control\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressPageControl\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressEditors Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressDocking Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressBars\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressOfficeCore Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressMemData\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressDataController\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressNavBar\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressSkins Library\\Sources\";S:\\3rdParty\\FastMM5;C:\\Users\\Brummel\\AppData\\Local\\Programs\\TestInsight\\Source;T:\\Myc\\Src;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\source\\DUnitX\" -LEC:\\Users\\Public\\Documents\\Embarcadero\\Studio\\37.0\\Bpl\\Win64 -LNC:\\Users\\Public\\Documents\\Embarcadero\\Studio\\37.0\\Dcp\\Win64 -NU.\\Win64\\Debug -NSWinapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;System;Xml;Data;Datasnap;Web;Soap; -O\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win64\\release\";C:\\Users\\Brummel\\Documents\\Embarcadero\\Studio\\37.0\\Imports\\Win64;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\Imports\";C:\\Users\\Public\\Documents\\Embarcadero\\Studio\\37.0\\Dcp\\Win64;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\include\";S:\\sc_famos_src\\svn_vcl\\Virtual-TreeView\\Source;S:\\sc_famos_src\\svn_vcl\\cpxedits;S:\\sc_famos_src\\svn_vcl\\dzChart;S:\\sc_famos_src\\svn_vcl\\eaeditor;S:\\sc_famos_src\\svn_vcl\\FamosEvents;S:\\sc_famos_src\\svn_vcl\\HTML_Viewer\\source;S:\\sc_famos_src\\svn_vcl\\Myc_ChartEdit;S:\\sc_famos_src\\svn_vcl\\Myc_HemiDrag;S:\\sc_famos_src\\svn_vcl\\Myc_SplitControl;S:\\sc_famos_src\\svn_vcl\\plotter;S:\\sc_famos_src\\svn_vcl\\SimpleIPC;S:\\sc_famos_src\\svn_vcl\\SynEdit-master\\Source;S:\\sc_famos_src\\svn_vcl\\ValEdits;S:\\sc_famos_src\\svn_vcl\\ZipMaster;S:\\sc_famos_src\\svn_common\\Myc_VecMath;\"C:\\Program Files (x86)\\DevExpress VCL\\Library\\RS28\\Win64\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressCore Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressCommon Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressGDI+ Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressLibrary\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\XP Theme Manager\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressLayout Control\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressPageControl\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressEditors Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressDocking Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressBars\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressOfficeCore Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressMemData\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressDataController\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressNavBar\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressSkins Library\\Sources\";S:\\3rdParty\\FastMM5;C:\\Users\\Brummel\\AppData\\Local\\Programs\\TestInsight\\Source;T:\\Myc\\Src;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\source\\DUnitX\" -R\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win64\\release\\DE\";\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win64\\release\";C:\\Users\\Brummel\\Documents\\Embarcadero\\Studio\\37.0\\Imports\\Win64;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\Imports\";C:\\Users\\Public\\Documents\\Embarcadero\\Studio\\37.0\\Dcp\\Win64;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\include\";S:\\sc_famos_src\\svn_vcl\\Virtual-TreeView\\Source;S:\\sc_famos_src\\svn_vcl\\cpxedits;S:\\sc_famos_src\\svn_vcl\\dzChart;S:\\sc_famos_src\\svn_vcl\\eaeditor;S:\\sc_famos_src\\svn_vcl\\FamosEvents;S:\\sc_famos_src\\svn_vcl\\HTML_Viewer\\source;S:\\sc_famos_src\\svn_vcl\\Myc_ChartEdit;S:\\sc_famos_src\\svn_vcl\\Myc_HemiDrag;S:\\sc_famos_src\\svn_vcl\\Myc_SplitControl;S:\\sc_famos_src\\svn_vcl\\plotter;S:\\sc_famos_src\\svn_vcl\\SimpleIPC;S:\\sc_famos_src\\svn_vcl\\SynEdit-master\\Source;S:\\sc_famos_src\\svn_vcl\\ValEdits;S:\\sc_famos_src\\svn_vcl\\ZipMaster;S:\\sc_famos_src\\svn_common\\Myc_VecMath;\"C:\\Program Files (x86)\\DevExpress VCL\\Library\\RS28\\Win64\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressCore Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressCommon Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressGDI+ Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressLibrary\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\XP Theme Manager\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressLayout Control\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressPageControl\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressEditors Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressDocking Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressBars\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressOfficeCore Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressMemData\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressDataController\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressNavBar\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressSkins Library\\Sources\";S:\\3rdParty\\FastMM5;C:\\Users\\Brummel\\AppData\\Local\\Programs\\TestInsight\\Source;T:\\Myc\\Src;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\source\\DUnitX\" -U\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win64\\debug\\DE\";\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win64\\debug\";\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win64\\release\\DE\";\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\lib\\Win64\\release\";C:\\Users\\Brummel\\Documents\\Embarcadero\\Studio\\37.0\\Imports\\Win64;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\Imports\";C:\\Users\\Public\\Documents\\Embarcadero\\Studio\\37.0\\Dcp\\Win64;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\include\";S:\\sc_famos_src\\svn_vcl\\Virtual-TreeView\\Source;S:\\sc_famos_src\\svn_vcl\\cpxedits;S:\\sc_famos_src\\svn_vcl\\dzChart;S:\\sc_famos_src\\svn_vcl\\eaeditor;S:\\sc_famos_src\\svn_vcl\\FamosEvents;S:\\sc_famos_src\\svn_vcl\\HTML_Viewer\\source;S:\\sc_famos_src\\svn_vcl\\Myc_ChartEdit;S:\\sc_famos_src\\svn_vcl\\Myc_HemiDrag;S:\\sc_famos_src\\svn_vcl\\Myc_SplitControl;S:\\sc_famos_src\\svn_vcl\\plotter;S:\\sc_famos_src\\svn_vcl\\SimpleIPC;S:\\sc_famos_src\\svn_vcl\\SynEdit-master\\Source;S:\\sc_famos_src\\svn_vcl\\ValEdits;S:\\sc_famos_src\\svn_vcl\\ZipMaster;S:\\sc_famos_src\\svn_common\\Myc_VecMath;\"C:\\Program Files (x86)\\DevExpress VCL\\Library\\RS28\\Win64\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressCore Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressCommon Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressGDI+ Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressLibrary\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\XP Theme Manager\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressLayout Control\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressPageControl\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressEditors Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressDocking Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressBars\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressOfficeCore Library\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressMemData\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressDataController\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressNavBar\\Sources\";\"C:\\Program Files (x86)\\DevExpress VCL\\ExpressSkins Library\\Sources\";S:\\3rdParty\\FastMM5;C:\\Users\\Brummel\\AppData\\Local\\Programs\\TestInsight\\Source;T:\\Myc\\Src;\"c:\\program files (x86)\\embarcadero\\studio\\37.0\\source\\DUnitX\" -V -VN -VR -NBC:\\Users\\Public\\Documents\\Embarcadero\\Studio\\37.0\\Dcp\\Win64 -NHC:\\Users\\Public\\Documents\\Embarcadero\\Studio\\37.0\\hpp\\Win64 -NO.\\Win64\\Debug -LU" , "projectFiles":[ { "name": "WhisperMain", "file": "file:///T%3A/mschimmel/Whisper/WhisperMain.pas" } ] , "includeDCUsInUsesCompletion": true, "enableKeyWordCompletion": true, "browsingPaths": [ "file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/OCX/Servers","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/SOURCE/VCL","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/rtl/common","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/SOURCE/RTL/SYS","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/rtl/win","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/rtl/win/winrt","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/ToolsAPI","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/SOURCE/IBX","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/Internet","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/SOURCE/PROPERTY%20EDITORS","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/soap","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/SOURCE/XML","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/Indy10/Core","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/Indy10/System","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/Indy10/Protocols","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/fmx","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/databinding/components","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/databinding/engine","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/databinding/graph","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/ado","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/cloud","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/datasnap","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/dbx","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/dsnap","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/vclctrls","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/datasnap/connectors","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/datasnap/proxygen","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DataExplorer","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/Contrib/DUnitWizard/Source/Common","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/Contrib/DUnitWizard/Source/Common/dunit","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/Contrib/DUnitWizard/Source/DelphiExperts/Common","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/Contrib/DUnitWizard/Source/DelphiExperts/DUnitProject","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/Contrib/DUnitWizard/Source/DelphiExperts/DUnitProject/dunit","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/src","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/tests","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/Experts","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/indy/abstraction","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/indy/implementation","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/indyimpl","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/Property%20Editors/Indy10","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/soap/wsdlimporter","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/Visualizers","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/Contrib/XMLReporting","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnit/Contrib/XPGen","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/rest","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/firedac","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/tethering","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/DUnitX","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/data/ems","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/rtl/net","file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/source/FlatBox2D","file:///C%3A/Users/Public/Documents/Embarcadero/Studio/37.0/Dcp/%25PLATFORM%25","file:///%25TP%25/runtime/vcl","file:///S%3A/sc_famos_src/svn_vcl/cpxedits","file:///S%3A/sc_famos_src/svn_vcl/dzChart","file:///S%3A/sc_famos_src/svn_vcl/eaeditor","file:///S%3A/sc_famos_src/svn_vcl/FamosEvents","file:///S%3A/sc_famos_src/svn_vcl/HTML_Viewer/source","file:///S%3A/sc_famos_src/svn_vcl/Myc_ChartEdit","file:///S%3A/sc_famos_src/svn_vcl/Myc_HemiDrag","file:///S%3A/sc_famos_src/svn_vcl/Myc_SplitControl","file:///S%3A/sc_famos_src/svn_vcl/NiceChart","file:///S%3A/sc_famos_src/svn_vcl/plotter","file:///S%3A/sc_famos_src/svn_vcl/SimpleIPC","file:///S%3A/sc_famos_src/svn_vcl/SynEdit-master/Source","file:///S%3A/sc_famos_src/svn_vcl/ValEdits","file:///S%3A/sc_famos_src/svn_vcl/ZipMaster","file:///S%3A/sc_famos_src/svn_vcl/ZipMaster/zlib","file:///S%3A/sc_famos_src/svn_vcl/ZipMaster/zlib/win32","file:///S%3A/sc_famos_src/svn_vcl/Virtual-TreeView/Source","file:///S%3A/sc_famos_src/svn_common/caHelpSys","file:///S%3A/sc_famos_src/svn_common/Misc","file:///S%3A/sc_famos_src/svn_common/Myc_VecMath","file:///S%3A/sc_famos_src/svn_common/PascalScript/source","file:///S%3A/sc_famos_src/svn_common/TreeBase","file:///S%3A/sc_famos_src/svn_common/TreeBase/Medien","file:///S%3A/3rdParty/spring4d/Source","file:///S%3A/3rdParty/spring4d/Source/Base","file:///S%3A/3rdParty/spring4d/Source/Base/Collections","file:///S%3A/3rdParty/spring4d/Source/Base/Logging","file:///S%3A/3rdParty/spring4d/Source/Base/Patches","file:///S%3A/3rdParty/spring4d/Source/Core/Container","file:///S%3A/3rdParty/spring4d/Source/Core/Interception","file:///S%3A/3rdParty/spring4d/Source/Core/Logging","file:///S%3A/3rdParty/spring4d/Source/Core/Mocking","file:///S%3A/3rdParty/spring4d/Source/Core/Services","file:///S%3A/3rdParty/spring4d/Source/Extensions/Cryptography","file:///S%3A/3rdParty/spring4d/Source/Extensions/Utils","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressCore%20Library/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressCommon%20Library/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressGDI%2B%20Library/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressLibrary/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/XP%20Theme%20Manager/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressLayout%20Control/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressPageControl/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressEditors%20Library/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressDocking%20Library/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressBars/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressOfficeCore%20Library/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressMemData/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressDataController/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressNavBar/Sources","file:///C%3A/Program%20Files%20%28x86%29/DevExpress%20VCL/ExpressSkins%20Library/Sources","file:///T%3A/Myc/Src","file:///T%3A/Myc/Src/Data","file:///T%3A/Myc/Src/AST" ] , "CommonAppData": "file:///C%3A/Users/Brummel/AppData/Roaming/Embarcadero/BDS/37.0/" , "Templates": "file:///c%3A/program%20files%20%28x86%29/embarcadero/studio/37.0/ObjRepos/" } } \ No newline at end of file diff --git a/Whisper/WhisperTest.dpr b/Whisper/WhisperTest.dpr new file mode 100644 index 0000000..0207de5 --- /dev/null +++ b/Whisper/WhisperTest.dpr @@ -0,0 +1,14 @@ +program WhisperTest; + +uses + System.StartUpCopy, + FMX.Forms, + WhisperMain in 'WhisperMain.pas' {Form1}; + +{$R *.res} + +begin + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. diff --git a/Whisper/WhisperTest.dproj b/Whisper/WhisperTest.dproj new file mode 100644 index 0000000..6da174c --- /dev/null +++ b/Whisper/WhisperTest.dproj @@ -0,0 +1,1137 @@ + + + {F0C6BFED-F793-419D-866E-33AE8E3ECE4E} + 20.3 + FMX + True + Debug + Win64 + WhisperTest + 3 + Application + WhisperTest.dpr + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + .\$(Platform)\$(Config) + .\$(Platform)\$(Config) + false + false + false + false + false + System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) + $(BDS)\bin\delphi_PROJECTICON.ico + $(BDS)\bin\delphi_PROJECTICNS.icns + WhisperTest + + + vclwinx;fmx;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;FireDACCommonODBC;FireDACCommonDriver;IndyProtocols;vclx;Skia.Package.RTL;IndyIPClient;dbxcds;vcledge;bindcompvclwinx;FmxTeeUI;bindcompfmx;inetdb;FireDACSqliteDriver;DbxClientDriver;Tee;soapmidas;vclactnband;TeeUI;fmxFireDAC;dbexpress;DBXMySQLDriver;VclSmp;inet;fmxase;vcltouch;dbrtl;Skia.Package.FMX;fmxdae;TeeDB;FireDACMSAccDriver;CustomIPTransport;vcldsnap;DBXInterBaseDriver;IndySystem;Skia.Package.VCL;vcldb;vclFireDAC;bindcomp;FireDACCommon;inetstn;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;DBXSqliteDriver;vcl;IndyIPServer;dsnapxml;dsnapcon;adortl;vclimg;FireDACPgDriver;FireDAC;inetdbxpress;xmlrtl;tethering;bindcompvcl;dsnap;CloudService;fmxobj;bindcompvclsmp;FMXTee;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + + + vclwinx;fmx;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;FireDACCommonODBC;FireDACCommonDriver;IndyProtocols;vclx;IndyIPClient;dbxcds;vcledge;bindcompvclwinx;FmxTeeUI;bindcompfmx;inetdb;FireDACSqliteDriver;DbxClientDriver;Tee;soapmidas;vclactnband;TeeUI;fmxFireDAC;dbexpress;DBXMySQLDriver;VclSmp;inet;fmxase;vcltouch;dbrtl;fmxdae;TeeDB;FireDACMSAccDriver;CustomIPTransport;vcldsnap;DBXInterBaseDriver;IndySystem;Skia.Package.VCL;vcldb;vclFireDAC;bindcomp;FireDACCommon;inetstn;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;DBXSqliteDriver;vcl;IndyIPServer;dsnapxml;dsnapcon;adortl;vclimg;FireDACPgDriver;FireDAC;inetdbxpress;xmlrtl;tethering;bindcompvcl;dsnap;CloudService;fmxobj;bindcompvclsmp;FMXTee;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + + + DEBUG;$(DCC_Define) + true + false + true + true + true + true + true + + + false + PerMonitorV2 + + + PerMonitorV2 + + + false + RELEASE;$(DCC_Define) + 0 + 0 + + + PerMonitorV2 + + + PerMonitorV2 + + + + MainSource + + +
Form1
+ fmx +
+ + Base + + + Cfg_1 + Base + + + Cfg_2 + Base + +
+ + Delphi.Personality.12 + Application + + + + WhisperTest.dpr + + + + + + true + + + + + true + + + + + true + + + + + WhisperTest.exe + true + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + res\xml + 1 + + + res\xml + 1 + + + + + library\lib\armeabi + 1 + + + library\lib\armeabi + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\mips + 1 + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-anydpi-v21 + 1 + + + res\drawable-anydpi-v21 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-v21 + 1 + + + res\values-v21 + 1 + + + + + res\values-v31 + 1 + + + res\values-v31 + 1 + + + + + res\values-v35 + 1 + + + res\values-v35 + 1 + + + + + res\drawable-anydpi-v26 + 1 + + + res\drawable-anydpi-v26 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-anydpi-v33 + 1 + + + res\drawable-anydpi-v33 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-night-v21 + 1 + + + res\values-night-v21 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-small + 1 + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + res\drawable-xlarge + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\drawable-anydpi-v24 + 1 + + + res\drawable-anydpi-v24 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-night-anydpi-v21 + 1 + + + res\drawable-night-anydpi-v21 + 1 + + + + + res\drawable-anydpi-v31 + 1 + + + res\drawable-anydpi-v31 + 1 + + + + + res\drawable-night-anydpi-v31 + 1 + + + res\drawable-night-anydpi-v31 + 1 + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + Contents\MacOS + 1 + .framework + + + Contents\MacOS + 1 + .framework + + + Contents\MacOS + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + Contents\Resources\StartUp\ + 0 + + + Contents\Resources\StartUp\ + 0 + + + Contents\Resources\StartUp\ + 0 + + + 0 + + + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + ..\ + 1 + + + + + Contents + 1 + + + Contents + 1 + + + Contents + 1 + + + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + Contents\MacOS + 1 + + + Contents\MacOS + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + library\lib\armeabi-v7a + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + ..\ + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).launchscreen + 64 + + + ..\$(PROJECTNAME).launchscreen + 64 + + + + + 1 + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + + + + + + + + + + + + + True + True + + + 12 + + + + +
diff --git a/Whisper/WhisperTest.res b/Whisper/WhisperTest.res new file mode 100644 index 0000000000000000000000000000000000000000..2eea91d69ca779b93ab8a82fe6c9a53af9cb639a GIT binary patch literal 154804 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

3!AbJKKp5&h{7@ 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

UjgHOcQk5B8i(o-mvX;*aDSXUS2pM zuXuV2Dkv#$({OTGNz3y5afK6d%Tp(e&o3)2FDZaA0i>ud67VT$na- zLhCeLUzG+*3d_sSp^>J|sy5QMu&h^U$@q%WvOyXCmRPZYYMP=!2wYnmkIdweR4XW) zSXfd3?oK!A&|g%vH+bp8L^HP=UauHmFM#rZ+K2 z)}&+UgbAf3sU1s8D#}WW%l$v_$y>7~>HOz^GI4Sqc-o_I`he1#3L%iqvRh>5HOp$6 zm6e}g)U=?;|7LM+$=J!cW6^M9|CbZXO7lUZ(z5nt`Qye{6y{e7)HDynMwr93-c$Jfnq*VmK9E#452S9=vy{^%J|~Kv4uW~giQLL zcAkbGQj~iZPAM$*kv1iznD=cO=9YIWnF5-W`H@XYnLNIIKJjhSuqd~G^?#EGS46)8ofWhsUbr3@Mm^OKUA3aIdV^HW-G(zN=vn-(=|-Yma)v(%jQ!ltQN z8JR6op`v-IIhh6NMa>G*3v!$Pl(w6uSKo9_VR}*X+@=|+c}01dAb4R;D#)Lmnw3*j zke!~}G&{G2B)G+5q4cE%iC^oq05PSQ!&ItX3^(YXBO*9J5W*VKH=-xJfdLU+;0g4D YXD|SF{UWZ9=!{SL;16>@$_-5a4?+vfl>h($ literal 0 HcmV?d00001 diff --git a/Whisper/prompt.md b/Whisper/prompt.md new file mode 100644 index 0000000..df47142 --- /dev/null +++ b/Whisper/prompt.md @@ -0,0 +1,28 @@ +# MISSION +You are a highly precise Medical Scribe. Your task is Passive Medical Data Extraction. Convert STT (Speech-to-Text) transcripts into professional German medical summaries (Arztbrief-Stil). + +# THE STRICTION (MANDATORY) +- LITERAL EXTRACTION ONLY: Extract only facts explicitly stated in the transcript. +- ZERO EXTERNAL KNOWLEDGE: Do NOT supplement the text with clinical guidelines, standard procedures, or medical "common sense." +- NO INFERRED NEGATIVES: Do NOT list "negative findings" (e.g., "no fever," "no pain") unless the speaker explicitly mentioned their absence. +- NO FILLERS: If a specific category (e.g., Medication) is not mentioned, use ONLY the phrase: "Im Gespräch nicht thematisiert" or "Keine Medikation erwähnt." +- VERBATIM TERMINOLOGY: Use the clinical terms provided in the text. Do not upgrade "progressive" to "extensive" unless the speaker used that specific word. + +# OUTPUT STRUCTURE (German Headings) +- Anlass der Vorstellung: (Reason for visit) +- Aktuelle Anamnese: (Symptoms & history from text) +- Körperliche Untersuchung / Befunde: (Physical findings/imaging mentioned in the text) +- Diagnosen / Verdacht: (Explicitly mentioned diagnoses or suspicions) +- Therapie & Maßnahmen: (Explicitly ordered steps/interventions only) + -Medikation: (Names & dosages. If none: "Keine Medikation erwähnt.") + +# NEGATIVE CONSTRAINTS (What to avoid) +- Do NOT mention "EKG" or "Physical Examination" if the transcript only talks about "Imaging." +- Do NOT list what was NOT done (e.g., "No surgery planned") if the transcript is silent on the matter. +- Do NOT assume a doctor's signature or title if not provided. + +# QUALITY CHECK PROCESS +Before outputting, ask yourself: "Did the speaker say this exact word or fact?" If the answer is "I am assuming this because it's standard medical practice," DELETE IT. + + +# Input Transcript: \ No newline at end of file