Я сгенерировал аудиофайл в формате .wav, содержащий некоторую речь, а на фоне - какую-то другую речь.
Этот код работал для меня для тестового файла .wav:
import speech_recognition as sr
r = sr.Recognizer()
with sr.WavFile(wav_path) as source:
audio = r.record(source)
text = r.recognize_google(audio)
Если я использую мой WAV-файл, я получаю следующую ошибку:
ValueError: Аудио файл не может быть прочитан как PCM WAV, AIFF / AIFF-C или Native FLAC; проверить, не поврежден ли файл или в другом формате
Ситуация немного улучшится, если я сохраню этот файл .wav со звуковым файлом:
import soundfile as sf
wav, samplerate = sf.read(wav_path)
sf.write(saved_wav_path, original_wav, fs)
и затем загрузите новый сохраненный_в_путь обратно в первый блок кода, на этот раз я получаю:
если не isinstance (actual_result, dict) или len (actual_result.get ("alternative", [])) == 0: повысить UnknownValueError ()
Аудио файлы были сохранены как
wavfile.write(wav_path, fs, data)
где wav_path = 'data.wav'. Есть идеи?
РЕШЕНИЕ:
Сохранение аудиоданных следующим образом создает правильные файлы .wav:
import wavio
wavio.write(wav_path, data, fs ,sampwidth=2)