/*
* Vapi API
*
* Voice AI for developers.
*
* The version of the OpenAPI document: 1.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct FallbackCustomTranscriber {
/// This is the transcription provider that will be used. Use `custom-transcriber` for providers that are not natively supported.
#[serde(rename = "provider")]
pub provider: ProviderTrue,
/// This is where the transcription request will be sent. Usage: 1. Vapi will initiate a websocket connection with `server.url`. 2. Vapi will send an initial text frame with the sample rate. Format: ``` { \"type\": \"start\", \"encoding\": \"linear16\", // 16-bit raw PCM format \"container\": \"raw\", \"sampleRate\": {{sampleRate}}, \"channels\": 2 // customer is channel 0, assistant is channel 1 } ``` 3. Vapi will send the audio data in 16-bit raw PCM format as binary frames. 4. You can read the messages something like this: ``` ws.on('message', (data, isBinary) => { if (isBinary) { pcmBuffer = Buffer.concat([pcmBuffer, data]); console.log(`Received PCM data, buffer size: ${pcmBuffer.length}`); } else { console.log('Received message:', JSON.parse(data.toString())); } }); ``` 5. You will respond with transcriptions as you have them. Format: ``` { \"type\": \"transcriber-response\", \"transcription\": \"Hello, world!\", \"channel\": \"customer\" | \"assistant\" } ```
#[serde(rename = "server")]
pub server: models::Server,
}
impl FallbackCustomTranscriber {
pub fn new(provider: ProviderTrue, server: models::Server) -> FallbackCustomTranscriber {
FallbackCustomTranscriber { provider, server }
}
}
/// This is the transcription provider that will be used. Use `custom-transcriber` for providers that are not natively supported.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ProviderTrue {
#[serde(rename = "custom-transcriber")]
CustomTranscriber,
}
impl Default for ProviderTrue {
fn default() -> ProviderTrue {
Self::CustomTranscriber
}
}