def record_micro(): """ 产生流(mac上麦克风读取音频流,需要先brew install portaudio) :return: """ client = AsrClient(url, port, None, enable_flush_data, log_level=log_level, product_id=product_id, sample_rate=sample_rate, user_name=user_name, password=password) NUM_SAMPLES = 2560 # pyaudio内置缓冲大小 SAMPLING_RATE = 8000 # 取样频率 pa = PyAudio() stream = pa.open(format=paInt16, channels=1, rate=SAMPLING_RATE, input=True, frames_per_buffer=NUM_SAMPLES) # yield stream while True: yield client.generate_stream_request(stream.read(NUM_SAMPLES))
def read_streaming_from_url(): """ 读取url上的流 :return: """ client = AsrClient(url, port, product_id, enable_flush_data, log_level=log_level, user_name=user_name, password=password) data = urllib2.urlopen(audio_url) while True: yield client.generate_stream_request(data.read(size=2560))
def general_fifo_stream(): """ 读取管道数据 1.新建管道:mkfifo pipe.wav 2.获取流存入管道:ffmpeg -i "http://path/of/video/stream" -vn -acodec pcm_s16le -ac 1 -ar 8000 -f wav pipe:1 > pipe.wav :return: """ client = AsrClient(url, port, product_id, enable_flush_data, log_level=log_level, send_per_seconds=0.16, user_name=user_name, password=password) rf = os.open("/Users/xiashuai01/TranFile/tem/pipe.wav", os.O_RDONLY) while True: stream = os.read(rf, 320) yield client.generate_stream_request(stream)
def generate_file_stream(): """ 产生流(本地音频流) :return: """ client = AsrClient(url, port, product_id, enable_flush_data, log_level=log_level, send_per_seconds=0.16, user_name=user_name, password=password) file_path = "/Users/xiashuai01/TranFile/tem/3.wav" if not os.path.exists(file_path): logging.info("%s file is not exist, please check it!", file_path) os._exit(-1) file = open(file_path, "r") content = file.read(320) while True: yield client.generate_stream_request(content) content = file.read(320)