2017-01-09 13 views
8

के लिए उपयुक्त WAV फ़ाइलों का निर्माण करना मैं अपनी आवाज को WAV फ़ाइल के रूप में रिकॉर्ड करने के लिए pyudio का उपयोग कर रहा हूं।Google स्पीच एपीआई

def voice_recorder(): 
    FORMAT = pyaudio.paInt16 
    CHANNELS = 2 
    RATE = 22050 
    CHUNK = 1024 
    RECORD_SECONDS = 4 
    WAVE_OUTPUT_FILENAME = "first.wav" 

    audio = pyaudio.PyAudio() 

    # start Recording 
    stream = audio.open(format=FORMAT, channels=CHANNELS, 
        rate=RATE, input=True, 
        frames_per_buffer=CHUNK) 
    print "konusun..." 
    frames = [] 

    for i in range(0, int(RATE/CHUNK * RECORD_SECONDS)): 
     data = stream.read(CHUNK) 
     frames.append(data) 
    #print "finished recording" 


    # stop Recording 
    stream.stop_stream() 
    stream.close() 
    audio.terminate() 

    waveFile = wave.open(WAVE_OUTPUT_FILENAME, 'wb') 
    waveFile.setnchannels(CHANNELS) 
    waveFile.setsampwidth(audio.get_sample_size(FORMAT)) 
    waveFile.setframerate(RATE) 
    waveFile.writeframes(b''.join(frames)) 
    waveFile.close() 

मैं गूगल वाक् API जो मूल रूप से WAV फ़ाइल में भाषण धर्मान्तरित पाठ में निम्नलिखित कोड का उपयोग कर रहा: मैं निम्नलिखित कोड का उपयोग कर रहा https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/speech/api-client/transcribe.py

जब मैं wav फ़ाइल आयात करने की कोशिश जो

googleapiclient.errors.HttpError: <HttpError 400 when requesting https://speech.googleapis.com/v1beta1/speech:syncrecognize?alt=json returned "Invalid Configuration, Does not match Wav File Header. 
Wav Header Contents: 
Encoding: LINEAR16 
Channels: 2 
Sample Rate: 22050. 
Request Contents: 
Encoding: linear16 
Channels: 1 
Sample Rate: 22050."> 

मैं निम्नलिखित तरीके को उपयोग कर रहा हूँ इस के लिए: गूगल के कोड को pyaudio द्वारा उत्पन्न होता है, मैं निम्न त्रुटि हो रही है मैं ffmpeg के साथ एमपी 3 के लिए WAV फ़ाइल कनवर्ट कर रहा हूँ, मैं एमपी 3 फ़ाइल परिवर्तित कर रहा हूँ तो बाद सोक्स के साथ फिर से wav:

def wav_to_mp3(): 
    FNULL = open(os.devnull, 'w') 
    subprocess.call(['ffmpeg', '-i', 'first.wav', '-ac', '1', '-ab', '6400', '-ar', '16000', 'second.mp3', '-y'], stdout=FNULL, stderr=subprocess.STDOUT) 

def mp3_to_wav(): 
    subprocess.call(['sox', 'second.mp3', '-r', '16000', 'son.wav']) 

Google का एपीआई इस डब्ल्यूएवी आउटपुट के साथ काम करता है लेकिन गुणवत्ता बहुत कम हो जाती है, यह अच्छी तरह से प्रदर्शन नहीं करती है।

तो मैं पहले चरण में प्यूडियो के साथ Google संगत WAV फ़ाइल कैसे बना सकता हूं?

उत्तर

4

समस्या

subprocess.call(['avconv', '-i', 'first.wav', '-y', '-ar', '48000', '-ac', '1', 'last.flac']) 
avconv साथ flac फाइल करने के लिए wav फ़ाइल कनवर्ट कर और यह गूगल वाक् API के लिए भेजने से हल
संबंधित मुद्दे