首页 > 解决方案 > Python Chirp.io 应用程序没有响应“啁啾”

问题描述

我正在尝试构建一个只会发出啁啾声并打印数据的啁啾应用程序。我正在我的终端中运行 python 应用程序,并且能够发送/发出啁啾声,但没有得到任何迹象表明我的应用程序正在从文档的测试啁啾接收任何数据。我已经调试了一点,但我对 python 的了解有限,但我已经根据应用程序捕获的内容创建了一个测试 .wav 文件,所以我知道它至少连接到我的麦克风。关于如何让我的应用程序响应啁啾声的任何想法?

这是我的代码,我大量借鉴了 python sdk 示例文件:

from chirp import ChirpConnect, CallbackSet, CHIRP_CONNECT_STATE
import argparse
import sys
import time

class MyCallbacks(CallbackSet):

    def on_state_changed(self, previous_state, current_state):
        """ Called when the SDK's state has changed """
        print("State changed from {} to {}".format(
            CHIRP_CONNECT_STATE.get(previous_state),
            CHIRP_CONNECT_STATE.get(current_state)))

    def on_sending(self, payload):
        """ Called when a chirp has started to be transmitted """
        print('Sending: ' + str(payload))

    def on_sent(self, payload):
        """ Called when the entire chirp has been sent """
        print('Sent data')

    def on_receiving(self):
        """ Called when a chirp frontdoor is detected """
        print('Receiving data')

    def on_received_verbose(self, payload):
        """
        Called when an entire chirp has been received.
        Note: A length of 0 indicates a failed decode.
        """
        if len(payload) == 0:
            print('Decode failed!')
        else:
            print('Received:' + str(payload))

    def on_received(self, payload):
        print(list(payload))



app_key="REDACTED"
app_secret="REDACTED"
input_device=0
output_device=1
# Initialise ConnectSDK

sdk = ChirpConnect(app_key, app_secret, debug=True)

sdk.audio.wav_filename = './test.wav'

print(str(sdk))
print(sdk.audio.query_devices())

# Configure audio
sdk.audio.input_device = input_device
sdk.audio.output_device = output_device
"""     sdk.audio.block_size = block_size
    sdk.sample_rate = sample_rate """

# Set callback functions
sdk.set_callbacks(MyCallbacks())

# Generate random payload and send
payload = sdk.random_payload()
sdk.start(send=True, receive=True)
sdk.send(payload)

try:
    # Process audio streams
         while True:
            time.sleep(0.1)
            sys.stdout.write('.')
            sys.stdout.flush()
except KeyboardInterrupt:
        print('Exiting')

sdk.stop()
sdk.close()

这是输出:

Chirp Connect 3.3.0 [3.1.8 052] initialised.
> 0 Built-in Microphone, Core Audio (2 in, 0 out)
< 1 Built-in Output, Core Audio (0 in, 2 out)
State changed from Stopped to Running
......................................

标签: pythonchirp

解决方案


推荐阅读