Exemplo n.º 1
0
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))
Exemplo n.º 2
0
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))
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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)