transcribeAudio static method
transcribes the audio file at the given path using the model with the given model id
Implementation
static Future<(GroqAudioResponse, GroqUsage, GroqRateLimitInformation)>
transcribeAudio({
required String apiKey,
required String filePath,
required String modelId,
}) async {
var request =
http.MultipartRequest('POST', Uri.parse(_getAudioTranscriptionUrl));
request.headers['Authorization'] = 'Bearer $apiKey';
request.headers['Content-Type'] = 'multipart/form-data';
request.files.add(await http.MultipartFile.fromPath('file', filePath));
request.fields['model'] = modelId;
var response = await request.send();
final responseBody = await response.stream.bytesToString();
final jsonBody = json.decode(responseBody);
if (response.statusCode == 200) {
final audioResponse = GroqParser.audioResponseFromJson(jsonBody);
final usage =
GroqParser.groqUsageFromAudioJson(jsonBody['x_groq']['usage']);
final rateLimitInfo =
GroqParser.rateLimitInformationFromHeaders(response.headers);
return (audioResponse, usage, rateLimitInfo);
} else {
throw GroqException(
statusCode: response.statusCode, error: GroqError.fromJson(jsonBody));
}
}