Python: невозможно преобразовать wav в flac - PullRequest
0 голосов
/ 26 мая 2018

Я хочу преобразовать аудиофайл (.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'

...