Получение ошибки клиента API Google с использованием речи Uberi в текстовый код - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь использовать текст речи Uberi в текстовом коде с API речи Google Cloud Platform (GCP).Я получаю следующую ошибку: googleapiclient.errors.UnknownApiNameOrVersion: name: speech version: v1beta1

Кто-нибудь знает, как исправить эту ошибку?Не могу найти что-нибудь на странице Uberi GitHub.Хотелось бы знать, сталкивался ли кто-нибудь с подобной ошибкой при использовании GCP или у кого-то есть лучший способ встраивания речевого к текстовому API Google, который работает.

Документация GCP не очень ясна!

Я использую следующий код:

recognizer = sr.Recognizer()
pa = pyaudio.PyAudio()

audio_rate = args.rate
stream_buf = bytes()
stream_counter = 0


def recognize(stream_text):
    global args

    def logger(s):
        f = open('recognition_log2.txt', 'a+', encoding='utf-8')
        f.write(datetime.datetime.now().strftime("[ %d-%b-%Y %H:%M:%S ] "))
        f.write(s)
        f.write("\x0A")
        f.close()

    audio_data = sr.AudioData(stream_text, audio_rate, 2)
    GOOGLE_CLOUD_SPEECH_CREDENTIALS = r"""{
  "type": "service_account",
  "project_id": "xxx",
  "private_key_id": "xxx",
  "private_key": "xxx",
  "client_email": "xxx",
  "client_id": "xxx",
  "auth_uri": "xxx",
  "token_uri": "xxx",
}
"""
    try:
        result = recognizer.recognize_google_cloud(audio_data, credentials_json=GOOGLE_CLOUD_SPEECH_CREDENTIALS)
        print(result)
        logger(result)
    except sr.UnknownValueError:
        pass
    except sr.RequestError as e:
        print("Could not request results from GSR service; {0}".format(e))


def stream_audio(data):
    global args
    global stream_buf
    global stream_counter

    if stream_counter < args.buf:
        stream_buf += data
        stream_counter += 1
    else:
        threading.Thread(target=recognize, args=(stream_buf,)).start()
        stream_buf = bytes()
        stream_counter = 0


def callback(in_data, frame_count, time_info, status):
    stream_audio(in_data)
    return (None, pyaudio.paContinue)


stream = pa.open(format=pyaudio.paInt16, channels=1, rate=audio_rate, input=True, stream_callback=callback,
                 input_device_index=args.device)
stream.start_stream()
while stream.is_active(): time.sleep(0.1)
stream.stop_stream()
stream.close()
pa.terminate()

1 Ответ

0 голосов
/ 09 июля 2019

Понял, в чем проблема, удалось прочитать кучу сообщений о проблемах на странице github Убери.

Простое решение состояло в том, чтобы просто обновить пакет до 3.8, я работал под 3.6, которая использовала старый облачный сервис Google.

Спасибо, Дастин!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...