esp-skainet-skill

Generates ESP-Skainet voice firmware code for WakeNet, MultiNet, AFE, VAD, DOA, and Chinese TTS.

28|3|Updated Jun 24, 2026
One-click install
npx skills add https://github.com/JasonYANG170/esp-dev-skill --skill esp-skainet-skill-jasonyang170
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: esp-skainet-skill
Source: https://github.com/JasonYANG170/esp-dev-skill/tree/main/repos/esp-skainet
Command: npx skills add https://github.com/JasonYANG170/esp-dev-skill --skill esp-skainet-skill-jasonyang170

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Developing offline voice assistant firmware on ESP32/ESP32-S3/ESP32-P4 with ESP-Skainet involves intricate AFE configuration, model partition setup, feed/detect task orchestration, and board-specific channel formats, where small mistakes cause crashes or silent recognition failures. ## Core Features & Use Cases - Scenario Recipes: 12 step-by-step recipes covering wake word detection, Chinese/English speech commands, runtime command customization, AFE tuning, deep noise suppression, VAD, DOA, Chinese TTS, performance benchmarking, and custom board porting. - Verified API & Config References: Real function signatures, enums, Kconfig symbols, sdkconfig.defaults templates, and partitions.csv layouts extracted from esp-skainet and esp-sr source headers. - Pitfall Prevention: 12 critical pitfalls with WRONG/CORRECT code pairs, such as feed frame sizing, fetch null checks, MultiNet command update requirements, and PSRAM/flash configuration. - Use Case: Ask the AI to build a wake-word plus Chinese command recognition demo on an ESP32-S3-Korvo-1 board, and it produces the complete app_main, feed/detect tasks, partition table, and sdkconfig based on the real cn_speech_commands_recognition example. ## Quick Start Ask the AI to create an ESP32-S3 voice assistant project with wake word detection and Chinese speech commands using the esp-skainet skill.

Frequently Asked Questions about esp-skainet-skill

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add wake word detection to an ESP32-S3 project?

Initialize the board with esp_board_init, load models via esp_srmodel_init with the SPIFFS partition label, create an AFE instance with afe_config_init, then run feed and detect tasks pinned to separate cores. The detect task calls afe_handle->fetch and checks wakeup_state for WAKENET_DETECTED.

How to add custom speech commands to MultiNet at runtime?

Call esp_mn_commands_clear, then esp_mn_commands_add with a command ID and string for each phrase, and finally esp_mn_commands_update to refresh the language model. Check the returned esp_mn_error_t for phrases that failed to parse.

Which ESP32 chips support ESP-Skainet voice recognition?

ESP32, ESP32-S3, ESP32-P4, and ESP32-S31 are supported, with ESP32-S3 recommended. Newer models like MultiNet7 and NSNET2 deep noise suppression require ESP32-S3, P4, or S31 and are not available on the original ESP32.

Why does my MultiNet command recognition never detect anything?

The most common cause is adding commands without calling esp_mn_commands_update afterward, so the language model never refreshes. Also verify the MultiNet model is selected in Kconfig and use print_active_speech_commands to confirm the active command list.

Does ESP-Skainet support cloud-based speech recognition?

No, this skill covers only local offline recognition using WakeNet and MultiNet on the device. Cloud ASR services like Baidu or iFlytek APIs are outside its scope, as is the broader esp-adf audio framework.

Why does assert(nch == feed_channel) fail on my custom board?

The input_format string length, the physical channel count from bsp_get_feed_channel, and the channel reordering logic in bsp_get_feed_data must be consistent. Verify your board Kconfig selection matches the hardware and that the reordering maps physical codec channels to the declared format.