#gravity #speech-recognition #word #dfrobot #voice-regonition

df2301q

DF2301Q Gravity 离线语音识别模块 Rust 驱动

1 个不稳定版本

0.1.0 2023年9月6日

#838嵌入式开发

自定义许可证

30KB
746

DFRobot DF2301Q Gravity 语音识别模块 Rust 驱动

这是 DFRobot 的 DF2301Q Gravity 语音识别模块 的 Rust 驱动。

有关 Python 和 C++ 库,请参阅相关的 DFRobot 仓库

此模块允许用户通过 i2c 或 uart 连接并监视一组预设命令词,甚至可以训练自己的以触发行为。

构建

确保您已安装嵌入式 Rust 的依赖项,并在需要的地方安装所有工具。

要构建、烧录和监视,请使用 espflash cargo 命令,如下所示

cargoespflash flash --monitor

示例

UART

    let peripherals = Peripherals::take().unwrap();
    let tx = peripherals.pins.gpio43;
    let rx = peripherals.pins.gpio44;

    let config = Config::new().baudrate(Hertz(9600));
    let uart = UartDriver::new(
        peripherals.uart1,
        tx,
        rx,
        Option::<gpio::Gpio0>::None,
        Option::<gpio::Gpio1>::None,
        &config,
    )
    .unwrap();
    let (tx, rx) = uart.split();
    let mut df2301q = df2301q::Df2301qUART::new(rx, tx);

    df2301q.play_by_command_word(CommandWord::OpenCurtain).unwrap();

    loop {
        let command_word = df2301q.get_command_word().unwrap();
        match command_word {
            CommandWord::TurnOnTheLight => {
                println!("TurnOnTheLight: Turning On Light");
            },
            CommandWord::TurnOffTheLight => {
                println!("TurnOffTheLight: Turning Off Light");
            },
            CommandWord::Reset => df2301q.reset().unwrap(),
            CommandWord::Silence => (), // Do nothing
            _ => println!("Found: {command_word:?}")
        }
    }

I2C

    let peripherals = Peripherals::take().unwrap();
    let sda = peripherals.pins.gpio5;
    let scl = peripherals.pins.gpio6;

    let config = Config::new().baudrate(Hertz(115200));
    let i2c = I2cDriver::new(
        peripherals.i2c0,
        sda,
        scl,
        &config,
    )
    .unwrap();
    let mut df2301q = df2301q::Df2301qI2C::new(i2c);

    df2301q.play_by_command_word(CommandWord::OpenCurtain).unwrap();

    loop {
        let command_word = df2301q.get_command_word().unwrap();
        match command_word {
            CommandWord::TurnOnTheLight => {
                println!("TurnOnTheLight: Turning On Light");
            },
            CommandWord::TurnOffTheLight => {
                println!("TurnOffTheLight: Turning Off Light");
            },
            CommandWord::Reset => df2301q.reset().unwrap(),
            CommandWord::Silence => (), // Do nothing
            _ => println!("Found: {command_word:?}")
        }
    }

依赖项

~71KB