myst-client 0.1.4

A client library for the Myst network
Documentation
use jiff::Timestamp;
use serde::{Deserialize, Serialize};
use typed_builder::TypedBuilder;

use crate::transport::NodeId;

#[derive(TypedBuilder, Debug, Deserialize)]
pub struct TranscriptionTask {
    data: AudioData,
    #[builder(default)]
    node_id: Option<NodeId>,
    #[builder(default)]
    language: Option<String>,
    #[builder(default)]
    timestamps: bool,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct TranscriptionResult {
    text: String,
    model: String,
    confidence: f32,
    timestamps: Option<Vec<(f32, f32, String)>>,
    created_at: Timestamp,
}

#[derive(Serialize, Deserialize, Debug)]
pub enum AudioFormat {
    Wav,
    Mp3,
    Flac,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct AudioData {
    format: AudioFormat,
    data: bytes::Bytes,
}