Struct rust_ai::openai::apis::audio::Audio

source ·
pub struct Audio {
    pub model: Model,
    pub prompt: Option<String>,
    pub response_format: Option<Format>,
    pub temperature: Option<f32>,
    pub language: Option<Language>,
}
Expand description

Given a prompt and an instruction, the model will return an edited version of the prompt.

Fields§

§model: Model

ID of the model to use. Only whisper-1 is currently available.

§prompt: Option<String>

An optional text to guide the model’s style or continue a previous audio segment. The prompt should match the audio language.

§response_format: Option<Format>

The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt.

§temperature: Option<f32>

The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.

§language: Option<Language>

The language of the input audio. Supplying the input language in ISO-639-1 format will improve accuracy and latency.

Implementations§

source§

impl Audio

source

pub fn set_prompt(&mut self, content: &str)

Set target prompt for image generations.

Arguments
  • content - Target prompt
source

pub async fn transcription( &self, file_name: String, bytes: Vec<u8> ) -> Result<AudioResponse, Box<dyn Error>>

Send transcription request to OpenAI.

The audio file to transcribe, in one of these formats: mp3, mp4, mpeg, mpga, m4a, wav, or webm.

Arguments
  • file_name - Audio file name
  • bytes - Bytes vector of the file
Examples found in repository?
examples/audio-transcription.rs (line 13)
5
6
7
8
9
10
11
12
13
14
15
16
17
async fn main() -> Result<(), Box<dyn Error>> {
    std::env::set_var("RUST_LOG", "debug");
    std::env::set_var("RUST_BACKTRACE", "1");
    log4rs::init_file("log4rs.yml", Default::default()).unwrap();

    let audio = Audio::default();
    let file_path = PathBuf::from("D:\\Contents\\Downloads\\20220918_000937.m4a");
    let result = audio
        .transcription(String::from("20220918_000937.m4a"), std::fs::read(file_path).unwrap())
        .await?;
    println!("{:?}", result.text);
    Ok(())
}
source

pub async fn translation( &self, file_name: String, bytes: Vec<u8> ) -> Result<AudioResponse, Box<dyn Error>>

Translates audio into into English.

The audio file to transcribe, in one of these formats: mp3, mp4, mpeg, mpga, m4a, wav, or webm.

Arguments
  • file_name - Audio file name
  • bytes - Bytes vector of the file
Examples found in repository?
examples/audio-translation.rs (line 13)
5
6
7
8
9
10
11
12
13
14
15
16
17
async fn main() -> Result<(), Box<dyn Error>> {
    std::env::set_var("RUST_LOG", "debug");
    std::env::set_var("RUST_BACKTRACE", "1");
    log4rs::init_file("log4rs.yml", Default::default()).unwrap();

    let audio = Audio::default();
    let file_path = PathBuf::from("D:\\Contents\\Downloads\\20220918_000937.m4a");
    let result = audio
        .translation(String::from("20220918_000937.m4a"), std::fs::read(file_path).unwrap())
        .await?;
    println!("{:?}", result.text);
    Ok(())
}

Trait Implementations§

source§

impl Debug for Audio

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Audio

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for Audio

§

impl Send for Audio

§

impl Sync for Audio

§

impl Unpin for Audio

§

impl UnwindSafe for Audio

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more