[英]Python: How to get raw audio file using pyaudio for Google Cloud Speech API
I am using the program given in below link on linux.我在 linux 上使用下面链接中给出的程序。
https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/speech/cloud-client/quickstart.py https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/speech/cloud-client/quickstart.py
The problem I am facing is how to get my own raw audio file recorded by microphone using pyaudio to use the above program to get text of what I have recorded.我面临的问题是如何通过麦克风使用 pyaudio 获取我自己的原始音频文件,以使用上述程序获取我录制内容的文本。
I have the below program of pyaudio but it gives me wav file.我有下面的 pyaudio 程序,但它给了我 wav 文件。 But I want to save raw audio file for google cloud speech api.
但我想为谷歌云语音 api 保存原始音频文件。 I don't want to convert wav to raw audio file.
我不想将 wav 转换为原始音频文件。 I directly want to save raw audio file using pyaudio.
我直接想使用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()
I have found the answer.我找到了答案。 Sorry for posting the question.
抱歉发布问题。 I am new in programming..
我是编程新手..
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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.