def listen_linux(frame_rate=44100, interval=0.1):

    mic = alsaaudio.PCM(alsaaudio.PCM_CAPTURE,
                        alsaaudio.PCM_NORMAL,
                        device="default")
    mic.setchannels(1)
    mic.setrate(44100)
    mic.setformat(alsaaudio.PCM_FORMAT_S16_LE)

    num_frames = int(round((interval / 2) * frame_rate))
    mic.setperiodsize(num_frames)
    print("start...")

    in_packet = False
    packet = []

    while True:
        l, data = mic.read()
        if not l:
            continue

        chunk = np.fromstring(data, dtype=np.int16)
        dom = dominant(frame_rate, chunk)
        #print(dom)

        if in_packet and match(dom, HANDSHAKE_END_HZ):
            byte_stream = extract_packet(packet)
            try:
                byte_stream = RSCodec(FEC_BYTES).decode(byte_stream)
                byte_stream = byte_stream.decode("utf-8")
                #print(byte_stream) #이 부분을 찍어보면 최종 문자열을 확인가능

                if "201502127" in byte_stream:  # in 키워드를 이용하면 문자열이 있는지를 찾을 수 있다.
                    ID_count = byte_stream.count(
                        "201502127")  #201502127이 몇번 출현하는지 찾는다.
                    byte_stream = extract_Data(byte_stream, ID_count)
                    display(byte_stream)

                    try:
                        byte_stream = RSCodec(FEC_BYTES).encode(
                            byte_stream.encode("utf-8")
                        )  # 필요한 데이터 뒤에 오류 코드까지 아스키 코드(1byte)로 인코딩 되어 나온다.
                        #print(byte_stream[0:4]) #byteArray가 된 " hel"이 출력됨.
                        sound(bytes_to_freq(byte_stream))

                    except ReedSolomonError as e:
                        pass
                        #print("{}: {}".format(e, byte_stream))

            except ReedSolomonError as e:
                pass
                #print("{}: {}".format(e, byte_stream))

            packet = []
            in_packet = False
        elif in_packet:
            packet.append(dom)
        elif match(dom, HANDSHAKE_START_HZ):
            in_packet = True