Portkey supports both Transcription and Translation methods for STT models and follows the OpenAI signature where you can send the file (in flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm formats) as part of the API request.
Here’s an example:
OpenAI NodeJSOpenAI PythonREST
Copy
Ask AI
import fs from "fs";import OpenAI from "openai";import { PORTKEY_GATEWAY_URL, createHeaders } from 'portkey-ai'const openai = new OpenAI({ apiKey: "dummy", // We are using Virtual Key from Portkey baseURL: PORTKEY_GATEWAY_URL, defaultHeaders: createHeaders({ apiKey: "PORTKEY_API_KEY", virtualKey: "OPENAI_VIRTUAL_KEY" })});// Transcriptionasync function transcribe() { const transcription = await openai.audio.transcriptions.create({ file: fs.createReadStream("/path/to/file.mp3"), model: "whisper-1", }); console.log(transcription.text);}transcribe();// Translationasync function translate() { const translation = await openai.audio.translations.create({ file: fs.createReadStream("/path/to/file.mp3"), model: "whisper-1", }); console.log(translation.text);}translate();
Copy
Ask AI
import fs from "fs";import OpenAI from "openai";import { PORTKEY_GATEWAY_URL, createHeaders } from 'portkey-ai'const openai = new OpenAI({ apiKey: "dummy", // We are using Virtual Key from Portkey baseURL: PORTKEY_GATEWAY_URL, defaultHeaders: createHeaders({ apiKey: "PORTKEY_API_KEY", virtualKey: "OPENAI_VIRTUAL_KEY" })});// Transcriptionasync function transcribe() { const transcription = await openai.audio.transcriptions.create({ file: fs.createReadStream("/path/to/file.mp3"), model: "whisper-1", }); console.log(transcription.text);}transcribe();// Translationasync function translate() { const translation = await openai.audio.translations.create({ file: fs.createReadStream("/path/to/file.mp3"), model: "whisper-1", }); console.log(translation.text);}translate();
Copy
Ask AI
from openai import OpenAIfrom portkey_ai import PORTKEY_GATEWAY_URL, createHeadersclient = OpenAI( api_key="dummy" #We are using Virtual Key from Portkey base_url=PORTKEY_GATEWAY_URL, default_headers=createHeaders( api_key="PORTKEY_API_KEY", virtual_key="OPENAI_VIRTUAL_KEY" ))audio_file= open("/path/to/file.mp3", "rb")# Transcriptiontranscription = client.audio.transcriptions.create( model="whisper-1", file=audio_file)print(transcription.text)# Translationtranslation = client.audio.translations.create( model="whisper-1", file=audio_file)print(translation.text)
Copy
Ask AI
from pathlib import Pathfrom portkey_ai import Portkey# Initialize the Portkey clientportkey = Portkey( api_key="PORTKEY_API_KEY", # Replace with your Portkey API key virtual_key="VIRTUAL_KEY" # Add your provider's virtual key)audio_file= open("/path/to/file.mp3", "rb")# Transcriptiontranscription = portkey.audio.transcriptions.create( model="whisper-1", file=audio_file)print(transcription.text)# Translationtranslation = portkey.audio.translations.create( model="whisper-1", file=audio_file)print(translation.text)
The following providers are supported for speech-to-text with more providers getting added soon. Please raise a request or a PR to add model or provider to the AI gateway.