Ошибка RecognitionConfig должна быть либо неопределенной, либо соответствовать значению в аудио заголовке FLAC в речи Google для текстового API
Я уже пытался преобразовать звук из стерео в моно, но безуспешно, я пытался изменить скорость в герцах, но тоже безуспешно
from pydub import AudioSegment
from google.cloud import speech_v1p1beta1 as speech
import os, logging
import urllib.request
KEY_API_ROOT = 'path'
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]=KEY_API_ROOT+"xx.json"
client = speech.SpeechClient()
url = incoming_message['entry'][0]['messaging'][0]['message']['attachments'][0]['payload']['url']
if '.aac' in url:
formato = 'aac'
else:
formato = 'mp4'
# download audio
urllib.request.urlretrieve(url, VOICE_ROOT + fbid + "." + formato)
# path
diretorio_audio = VOICE_ROOT + fbid + "." + formato
mp4_version = AudioSegment.from_file(diretorio_audio, formato)
mp4_version.export(VOICE_ROOT + fbid + ".flac", format="flac", bitrate="400k", parameters=["-ac", "1"])
with open(VOICE_ROOT + fbid + '.flac', 'rb') as audio_file:
content = audio_file.read()
audio = speech.types.RecognitionAudio(content=content)
config = speech.types.RecognitionConfig(
encoding=speech.enums.RecognitionConfig.AudioEncoding.FLAC,
sample_rate_hertz=44100,
language_code='en-US',
enable_word_confidence=True)
try:
response = client.recognize(config, audio)
except Exception as erro_stt:
logging.info("Erro 66 ProcessarAudio no STT: {}".format(erro_stt))
Ошибка:
400 sample_rate_hertz (44100) в RecognitionConfig должны быть либо не указаны, либо соответствовать значению в заголовке FLAC (48000).
1 ответ
Решение
Я решил эту проблему с:
Установить пакеты
sudo apt-get установить sox
sudo apt-get установить libsox-fmt-mp3
казнить
sox input.mp3 - скорость 16k битов 16 - каналы 1 output.flac