mutterkey
KDE-first push-to-talk transcription tool for KDE Plasma
Loading...
Searching...
No Matches
transcriptionengine.h
Go to the documentation of this file.
1#pragma once
2
3#include "config.h"
5
6#include <memory>
7
8struct Recording;
9
22{
23public:
24 virtual ~TranscriptionModelHandle() = default;
26 TranscriptionModelHandle &operator=(const TranscriptionModelHandle &) = delete;
29
34 [[nodiscard]] virtual QString backendName() const = 0;
35
40 [[nodiscard]] virtual ModelMetadata metadata() const = 0;
41
46 [[nodiscard]] virtual QString modelDescription() const = 0;
47
48protected:
49 TranscriptionModelHandle() = default;
50};
51
59{
60public:
61 virtual ~TranscriptionSession() = default;
63 TranscriptionSession &operator=(const TranscriptionSession &) = delete;
65 TranscriptionSession &operator=(TranscriptionSession &&) = delete;
66
71 [[nodiscard]] virtual QString backendName() const = 0;
72
78 virtual bool warmup(RuntimeError *error = nullptr) = 0;
79
85 [[nodiscard]] virtual TranscriptUpdate pushAudioChunk(const AudioChunk &chunk) = 0;
86
91 [[nodiscard]] virtual TranscriptUpdate finish() = 0;
92
99 [[nodiscard]] virtual TranscriptUpdate cancel() = 0;
100
101protected:
102 TranscriptionSession() = default;
103};
104
112{
113public:
114 virtual ~TranscriptionEngine() = default;
116 TranscriptionEngine &operator=(const TranscriptionEngine &) = delete;
118 TranscriptionEngine &operator=(TranscriptionEngine &&) = delete;
119
124 [[nodiscard]] virtual BackendCapabilities capabilities() const = 0;
125
130 [[nodiscard]] virtual RuntimeDiagnostics diagnostics() const = 0;
131
137 [[nodiscard]] virtual std::shared_ptr<const TranscriptionModelHandle> loadModel(RuntimeError *error = nullptr) const = 0;
138
144 [[nodiscard]] virtual std::unique_ptr<TranscriptionSession>
145 createSession(std::shared_ptr<const TranscriptionModelHandle> model) const = 0;
146
147protected:
148 TranscriptionEngine() = default;
149};
150
156[[nodiscard]] std::shared_ptr<const TranscriptionEngine> createTranscriptionEngine(const TranscriberConfig &config);
Immutable engine configuration that creates backend sessions.
virtual std::shared_ptr< const TranscriptionModelHandle > loadModel(RuntimeError *error=nullptr) const =0
Loads an immutable validated model handle for this engine.
virtual BackendCapabilities capabilities() const =0
Returns the runtime capabilities for sessions created by this engine.
virtual std::unique_ptr< TranscriptionSession > createSession(std::shared_ptr< const TranscriptionModelHandle > model) const =0
Creates a new isolated transcription session from a loaded model.
virtual RuntimeDiagnostics diagnostics() const =0
Returns runtime inspection data for this engine instance.
Immutable loaded-model interface created by a transcription engine.
virtual QString modelDescription() const =0
Returns a human-readable description of the loaded model.
virtual ModelMetadata metadata() const =0
Returns product-owned immutable metadata for the loaded artifact.
virtual QString backendName() const =0
Returns the backend identifier for this loaded model.
Mutable per-session transcription interface.
virtual TranscriptUpdate finish()=0
Flushes the current utterance and emits any final transcript events.
virtual TranscriptUpdate pushAudioChunk(const AudioChunk &chunk)=0
Ingests one normalized audio chunk into the live session.
virtual TranscriptUpdate cancel()=0
Requests cooperative cancellation of any active decode.
virtual bool warmup(RuntimeError *error=nullptr)=0
Performs optional backend warmup for this session.
virtual QString backendName() const =0
Returns the backend identifier for this live session.
Runtime configuration types, defaults, and JSON loading entrypoints.
One normalized streaming audio unit passed into a transcription session.
Product-owned backend/runtime metadata surfaced to app code.
Product-owned immutable metadata about a validated model artifact.
Immutable-style value object holding one captured audio segment.
Definition recording.h:14
Runtime inspection data kept separate from static backend capabilities.
Structured runtime-layer failure with user-facing and diagnostic text.
Transcription runtime configuration.
Definition config.h:62
Result of one streaming session operation.
std::shared_ptr< const TranscriptionEngine > createTranscriptionEngine(const TranscriberConfig &config)
Creates the configured embedded transcription engine.
Shared value types exchanged by the transcription pipeline.