## AI Audio Recording <span class="tag_h2">On-App AI</span>

### Feature Introduction

<div style="margin-top: 20px;">
<img alt="Highlighted Video" src="https://images.tuyacn.com/rms-static/22dd5090-41b9-11f0-9fb9-e1834df84344-1749092385817.jpg?tyName=record" width="300" style="border: 1px solid #000000">
</div>

1. The AI audio recording follows this process: audio collection, audio AI processing, and audio packaging.

2. AI audio recording primarily depends on the following 5 key capabilities:

- **Obtain the Globally Unique Recorder Manager**  
   Developers can use the [getRecorderManager](/en/miniapp/develop/miniapp/api/media/record/getRecorderManager) API to obtain the globally unique recorder manager.

- **Start Recording**  
   Developers can use the [RecorderManager.start](/en/miniapp/develop/miniapp/api/media/record/RecorderManager/RecorderManager-start) API to begin recording.

- **Pause Recording**  
   Developers can use the [RecorderManager.pause](/en/miniapp/develop/miniapp/api/media/record/RecorderManager/RecorderManager-pause) API to pause recording.

- **Resume Recording**  
   Developers can use the [RecorderManager.resume](/en/miniapp/develop/miniapp/api/media/record/RecorderManager/RecorderManager-resume) API to resume recording.

- **Stop Recording**  
   Developers can use the [RecorderManager.stop](/en/miniapp/develop/miniapp/api/media/record/RecorderManager/RecorderManager-stop) API to stop recording.

### Interaction Flow

```mermaid
sequenceDiagram
    participant User
    participant Panel
    participant RecorderManager
    participant Audio Engine

    rect rgb(200, 230, 255)
        Note over User, RecorderManager: Initialization Phase
        User ->> Panel: 1. Request recording feature
        Panel ->> RecorderManager: 2. getRecorderManager()
        RecorderManager -->> Panel: 3. Return global manager instance
    end

    rect rgb(200, 255, 225)
        Note over User, Audio Engine: Recording Control Phase
        User ->> RecorderManager: 4. start()
        RecorderManager ->> Audio Engine: 5. Activate recording device
        Note right of Audio Engine: Enable AGC (Automatic Gain Control), Enable VAD (Voice Activity Detection)

        par Real-Time Processing
            Audio Engine ->> Audio Engine: 6. AGC dynamically adjusts volume
            Audio Engine ->> Audio Engine: 7. VAD detects speech segments
            Audio Engine ->> RecorderManager: 8. Real-time callback of volume data
            RecorderManager ->> Panel: 9. Update UI waveform chart
        end

        alt User pauses
            User ->> RecorderManager: 10. pause()
            RecorderManager ->> Audio Engine: 11. Pause input stream
            Audio Engine -->> RecorderManager: 12. Confirm pause
        else User resumes
            User ->> RecorderManager: 13. resume()
            RecorderManager ->> Audio Engine: 14. Resume input stream
            Audio Engine -->> RecorderManager: 15. Confirm resume
        end
    end

    rect rgb(255, 225, 200)
        Note over User, RecorderManager: End Recording Phase
        User ->> RecorderManager: 16. stop()
        RecorderManager ->> Audio Engine: 17. Stop recording
        Audio Engine ->> Audio Engine: 18. Generate final audio file
        Note right of Audio Engine: Supported formats: MP3, G.711A, G.711U, nOpus, AAC, mSBC
        Audio Engine -->> RecorderManager: 19. Return file path
        RecorderManager ->> User: 20. Display recording complete
    end
```
