transcribe method
Implementation
@override
Future<DVAITranscript> transcribe(
List<int> audioBytes, {
String mimeType = 'audio/wav',
String language = 'und',
}) async {
if (transcriptionModel.isEmpty) unsupported('a transcription endpoint');
final boundary = dvGenerateMultipartBoundary();
final response = await send(
DVAIHttpRequest(
url: endpoint('/v1/audio/transcriptions'),
headers: <String, String>{
'content-type': 'multipart/form-data; boundary=$boundary',
...authHeaders,
},
body: dvEncodeMultipartBody(
boundary: boundary,
fields: <String, String>{
'model': transcriptionModel,
if (language != 'und') 'language': language,
},
fileField: 'file',
fileName: dvAudioFileNameFor(mimeType),
fileContentType: mimeType,
fileBytes: audioBytes,
),
),
);
final payload = decodeJsonResponse(response);
return DVAITranscript(
text: readString(payload, 'text'),
language: language,
metadata: <String, DVJsonValue>{
'model': DVJsonString(transcriptionModel),
'mimeType': DVJsonString(mimeType),
'byteLength': DVJsonNumber(audioBytes.length),
},
);
}