FP Perception 0.1.2
Loading...
Searching...
No Matches
transcription_pipeline.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <functional>
4#include <memory>
5
10
11namespace fp_perception
12{
13
15{
16public:
17 using AudioReader = std::function<audio_data(const audio_buffer_request&)>;
18
19 TranscriptionPipeline(std::shared_ptr<TranscriptionDriver> driver, AudioReader readDeviceAudio)
20 : driver_(std::move(driver)), read_device_audio_(std::move(readDeviceAudio))
21 {
22 }
23
25 {
26 if (!driver_)
27 throw fp_perception_exception("Transcription driver is not loaded.");
28
29 if (request.use_device_audio)
30 {
32 throw fp_perception_exception("Device audio reader is not available.");
33
34 audio_buffer_request audio_request;
35 audio_request.duration_seconds = request.audio_request_window;
36 audio_request.use_time_window = request.use_device_audio_time_window;
37 audio_request.start_time = request.device_audio_start_time;
38 request.audio = read_device_audio_(audio_request);
39 }
40
41 return driver_->transcribe(request);
42 }
43
44private:
45 std::shared_ptr<TranscriptionDriver> driver_;
47};
48
49} // namespace fp_perception
Definition transcription_pipeline.hpp:15
std::function< audio_data(const audio_buffer_request &)> AudioReader
Definition transcription_pipeline.hpp:17
AudioReader read_device_audio_
Definition transcription_pipeline.hpp:46
transcription_result run(transcription_request request)
Definition transcription_pipeline.hpp:24
std::shared_ptr< TranscriptionDriver > driver_
Definition transcription_pipeline.hpp:45
TranscriptionPipeline(std::shared_ptr< TranscriptionDriver > driver, AudioReader readDeviceAudio)
Definition transcription_pipeline.hpp:19
Definition audio_buffer.hpp:16
Definition structs.hpp:26
int duration_seconds
Definition structs.hpp:27
bool use_time_window
Definition structs.hpp:28
rclcpp::Time start_time
Definition structs.hpp:29
Struct to hold audio data.
Definition structs.hpp:16
Base class for driver exceptions.
Definition exceptions.hpp:14
Definition structs.hpp:13
bool use_device_audio_time_window
Definition structs.hpp:17
rclcpp::Time device_audio_start_time
Definition structs.hpp:18
int audio_request_window
Definition structs.hpp:16
audio_data audio
Definition structs.hpp:14
bool use_device_audio
Definition structs.hpp:15
Definition structs.hpp:22