Я хочу преобразовать аудиофайл (.wav) в текст.Я нашел это Репо при поиске, но оно было написано на Python 2.x.Я преобразовал синтаксис в 3.x
#!/usr/bin/python
import sys
import urllib.request, urllib.error, urllib.parse
import os
import json
import subprocess as sp
url = "https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=en-US"
fileName = str(sys.argv[1])
fileExtension = os.path.splitext(fileName)[1]
converted = False
if fileExtension != ".flac":
fnull = open(os.devnull, 'w')
sp.call("pacpl --overwrite -t flac " + fileName, shell = True, stdout = fnull, stderr = fnull)
fnull.close()
fileName = os.path.splitext(fileName)[0] + '.flac'
converted = True
try:
binary_audio = open(fileName, 'rb')
except:
print("Failed to get binary data.")
size_of_audio = os.path.getsize(fileName)
if converted:
os.remove(fileName)
request = urllib.request.Request(url)
request.add_header('Content-type','audio/x-flac; rate=16000')
request.add_header('Content-length', str(size_of_audio))
request.add_data(binary_audio)
try:
response = urllib.request.urlopen(request)
except urllib.error.URLError as e:
print("Unable to connect")
except urllib.error.HTTPError as e:
print("Oops, bad request")
content = response.read()
data = json.loads(content)
print(data["hypotheses"][0]["utterance"])
, но когда я запускаю скрипт, я получаю эту ошибку:
$ python speech.py /Users/amin/AnacondaProjects/audio-transcribe/softkitty.wav
Не удалось получить двоичные данные.Traceback (последний вызов был последним): файл "speech.py", строка 26, в size_of_audio = os.path.getsize (fileName) файл "/anaconda3/lib/python3.6/genericpath.py", строка 50, в getsizereturn os.stat (имя файла) .st_size FileNotFoundError: [Errno 2] Нет такого файла или каталога: '/Users/amin/AnacondaProjects/audio-transcribe/softkitty.flac'