2017-01-08 15 views
2

私はLinuxの下のリンクにあるプログラムを使用しています。Python:pyaudioを使って生のオーディオファイルをGoogleクラウドスピーチAPIに取得する方法

https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/speech/cloud-client/quickstart.py

私が直面しています問題は、私は記録されているもののテキストを取得するために、上記のプログラムを使用するpyaudioを使用して、マイクによって記録された私自身の生のオーディオファイルを取得する方法です。

私はpyaudioの以下のプログラムを持っていますが、それは私にwavファイルを与えます。しかし、私はGoogleの雲の音声APIの生のオーディオファイルを保存したい。 wavを生のオーディオファイルに変換したくない。私は直接pyaudioを使って生のオーディオファイルを保存したい。

import pyaudio 
import wave 

FORMAT = pyaudio.paInt16 
CHANNELS = 2 
RATE = 44100 
CHUNK = 1024 
RECORD_SECONDS = 5 
WAVE_OUTPUT_FILENAME = "file.wav" 

audio = pyaudio.PyAudio() 

# start Recording 
stream = audio.open(format=FORMAT, channels=CHANNELS, 
      rate=RATE, input=True, 
      frames_per_buffer=CHUNK) 
print "recording..." 
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() 

答えて

2

私は答えを見つけました。申し訳ありません、質問を投稿してください。私はプログラミングの初心者です。

import pyaudio 
import wave 

FORMAT = pyaudio.paInt16 

CHANNELS = 1 
RATE = 16000 
CHUNK = int(RATE/10) 
RECORD_SECONDS = 5 

audio = pyaudio.PyAudio() 

# start Recording 
stream = audio.open(format=FORMAT, channels=CHANNELS, 
      rate=RATE, input=True, 
      frames_per_buffer=CHUNK) 
print "recording..." 
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() 



file = open("newfile.raw", "w") 
file.write(b''.join(frames)) 
file.close() 
+2

私たちが学ぶ方法です。また、あなた自身の質問にお答えすることは大歓迎です。しかし、単に動作するコードを投稿するのではなく、あなたの答えにあなたの解答を説明してください。コミュニティを助けてくれてありがとう! –

+1

@Rightleg貴重なアドバイスをいただきありがとうございます。私は答えの次回からコードを説明します。しかし、ここで問題は私もコードを理解していないということです。とにかく幸運! –

関連する問題