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)
Вернуться на верх