AAC/ADTS в WAV в Flutter/Django
Я и моя команда создаем приложение для преобразования речи в текст для определенной цели.
Фронтенд сделан на Flutter, а бэкенд на Django
Я использую пакет flutter_sound для Flutter, и единственный кодек, который он поддерживает для записи звука, это Codec.aacADTS, и я могу сохранить файл с помощью .aac или .adts
На бэкенде (Django) мы используем библиотеку Speech Recognition и при использовании файла .aac или .adts с ним, он выдает ошибку: ValueError("Audio file could not be read as PCM WAV, AIFF/AIFF-C, or Native FLAC; check if file is corrupted or in another format")
Мы попробовали использовать другой файл .wav, и распознавание речи работает. Итак, нужно ли мне преобразовать файл .aac/.adts в файл .wav? Как это сделать, и нужно ли это делать на frontend или backend? Какие-нибудь библиотеки/фрагменты кода помогут мне в этом?
Frontend Code (Flutter)
Future startRecord() async {
setState(() {
isRecording = true;
});
Directory? dir = await getExternalStorageDirectory();
await recorder.startRecorder(
toFile: "${dir!.path}/audio.aac", codec: Codec.aacADTS);
}
Future stopRecorder() async {
final filePath = await recorder.stopRecorder();
final file = File(filePath!);
uploadAudio(file);
print('Recorded file path: $filePath');
setState(() {
isRecording = false;
audioFile = file;
});
}
Код бэкенда (Django)
@api_view(['GET'])
def speech_to_text(request):
conn = mongo_conn()
audio_file_ID = request.GET['AudioFileID']
audio_file = download_audio(conn, audio_file_ID)
r = sr.Recognizer()
with sr.AudioData(audio_file) as source:
# listen for the data (load audio to memory)
audio_data = r.record(source)
# recognize (convert from speech to text)
text = r.recognize_google(audio_data)
print(text)
return JsonResponse({'text': text}, safe=False)