Xiaomi Redmi 9 is a popular smartphone with flexible settings, but standard MIUI firmware does not provide voice alerts when charging starts or ends. However, this feature can be implemented using third-party applications or hidden system features. In this article, we will discuss all working methods, from simple to advanced, and also tell you how to avoid typical errors during settings.
Voice notifications are not only convenient for people with disabilities, but also for anyone who wants to get information about the status of the battery without looking at the screen. For example, you can hear: “Charge is connected, battery level is 15%” or “Battery is 100% charged” – and turn off the cable in time to save battery life. It is important to understand that on Redmi 9 with MIUI 12 and later, some methods require additional permissions due to Xiaomi’s security policy.
Why Redmi 9 doesn’t have default voice alerts
Smartphone manufacturers, including Xiaomi, often opt out of voice notifications in standard firmware for several reasons:
- 🔊 Resource savings: Continuous monitoring of charging status and sound playback increases the workload on the processor and consumes additional energy.
- 📱 Minimalism of the interface: MIUI Aims for a “clean” user experience without unnecessary alerts that can be annoying.
- 🔒 Android Restrictions: Starting with Android 10, apps are not allowed to automatically play sounds without the explicit permission of the user.
However, you can get around these limitations, like apps like Tasker or Automation using the Accessibility Service to track charging events and run voice commands, and scripts using ADB are another option, but that requires technical skills.
⚠️ Attention: Redmi 9s MIUI 13+ Some automations may be blocked by the system as "suspicious activity." → Special permits → Optimizing the battery for the selected application.
Method 1: Talking Notifications (without root)
The easiest method is to use a dedicated app from Google Play. One of the best options is Notification Announcer (formerly Talking Notices), which can voice any notifications, including system charging messages.
Instructions for setting:
- Install the app from Google Play.
- Open it and give permissions: 🔑 Special features (Settings) → Special opportunities → Notification Announcer). 📋 Reading notifications (Settings) → Annexes → Permits → Notifications).
Voice system notifications
Filters
"Recharging"
«Battery»
The application supports Russian and allows you to choose a voice from the installed TTS-engines (for example, Google Text-to-Speech). minus the method – all notifications about charging, including intermediate (for example, “Traffing by 50%”) are voiced, which may be redundant.
Installed by Google Text-to-Speech|Battery optimization for the application is disabled|Notifications enabled|Internet connection checked (for downloading voices)-->
Method 2: Tasker + AutoNotification (Advanced Configuration)
Tasker, an Android action automation app, is suitable for flexible voice alert settings. In conjunction with the AutoNotification plugin, it allows you to create rules for voicing only the desired events (for example, only the beginning / end of charging).
Algorithm of settings:
- Install Tasker and AutoNotification.
- In Tasker, create a new profile (Profile → Event → Power → Power Connected).
- Add Task → New Task with Say (in Alert category).
- In the Text box, type a voiceover phrase, such as, "Charging is connected. Current level: %BATT."
- Create a profile for Power Disconnected event.
⚠️ Attention: On Redmi 9 s MIUI 14 Tasker may require additional permission ADB To provide it, connect your phone to your PC and execute the command: adb shell pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS
Ready-made applications (just)|Tasker (flexible)|ADB-Teams (for experienced teams)|I don't know, I'll pick it after reading it.-->
Method 3: ADB-System Alert Teams (for experienced)
If you're not afraid to work with ADB, you can get the system to voice charging notifications without third-party applications, which requires an unlocked bootloader and ADB rights, but allows maximum integration with MIUI.
Steps:
- Enable USB Debugging in Settings → About Phone → MIUI version (click 7 times on the line with the version, then go back to Additional → For Developers).
- Get Redmi on board. 9 ← Adb shell settings put secure enabled_accessibility_services com.android.tts/.TtsService
- Create a file. battery_announce.sh with a script (example below) and place it in /data/local/userinit.d/.
Example of voice script (requires root or Magisk rights):
#!/system/bin/sh
while true; do
STATUS=$(cat /sys/class/power_supply/battery/status)
CAPACITY=$(cat /sys/class/power_supply/battery/capacity)
if [ "$STATUS" = "Charging" ] && [ $CAPACITY -lt 100 ]; then
su -c 'cmd tts --text "Charging connected. Battery level: $CAPACITY percent"
sleep 300
fi
done| Method | Difficulty | Root is required. | Flexibility |
|---|---|---|---|
| Annex “Talking Notices” | ⭐ | ❌ No. | Voices all charging notifications |
| Tasker + AutoNotification | ⭐⭐⭐ | ❌ No. | Customizable triggers and conditions |
| ADB + system scripts | ⭐⭐⭐⭐ | ✅ Yes, or Magisk) | Maximum integration with MIUI |
What to do if your voice doesn’t work?
How to Configure the Voice of Key Events
By default, many apps voice all changes in charging status (every 1-5%), which is quickly annoying. To limit alerts to only important events (such as start/end charging or critical battery level), use the following techniques:
In Tasker:
- 🔋 Add a condition If %BATT <= 20 for low charge alert.
- ⚡ Use a variable %PWR (power condition) for event filtering: If %PWR ~ charging.
- 🕒 Set the delay between alerts: Wait 1h after-voice.
In applications like Notification Announcer:
- 📝 Manually add to the blacklist notification with the text “Charge at X%” (except 100% and 15%).
- 🔕 Turn off voiceover for the Android System app, leaving only Battery.
Example of Tasker task to voice only the end of charging:
Profile: Power Disconnected
Task:
1. If %BATT = 100
2. Say Text= "The battery is fully charged. You can turn off the cable."
3. Else
4. Stop
End If💡
If you use Google Assistant, you can set up a routine command like “OK Google, what percentage of battery?” to check your voice level without additional apps.
Solving the Problem: Why Talking Charging Doesn't Work
If voice alerts fail after setting up, check the following points:
| Problem. | Possible cause | Decision |
|---|---|---|
| Voice not played | Absent. TTS-engine | Install Google Text-to-Speech from Play Market |
| Alerts are triggered with a delay | Optimizing the battery | Turn off optimization for the application in MIUI settings |
| All notifications are made | Incorrect filters | Set up rules in Tasker or blacklist in Notification Announcer |
| The app closes itself | MIUI kills background processes | Add the app to Cleanup Lock (Settings → Apps → Permissions → Auto Run) |
On Redmi 9 with MIUI 13/14, a common cause of failure is the Privacy feature, which blocks applications from accessing system logs to disable it:
- Go to Settings → Privacy → Special Access → System Logs.
- Find your app (like Tasker) and give you access.
💡
On Redmi 9 with MIUI 14+, for the automation to work smoothly, you need to disable MIUI optimization (in the developer settings) and add the application to the cleaning lock exceptions.
Alternative options: smart sockets and external devices
If software methods don’t work, consider hardware solutions:
- 🔌 Smart sockets (e.g. Xiaomi Mi Smart Plug): You can configure a notification in Mi Home when connecting/disabling charging.
- 🎧 Bluetooth speakers with voice assistant: some models (such as Amazon Echo) can voice the status of connected devices.
- 📱 Outside TTS-module: connected through USB-C devices (e.g. Raspberry Pi Zero with speaker) for voice-over.
The advantage of hardware is that it doesn't depend on the firmware of the phone, and it works even when the screen is off, and the downside is the extra cost and the need to customize the smart home ecosystem.
Example of settings through Mi Home:
- Connect the Mi Smart Plug to the socket that has the Redmi 9 charging plug in.
- In the Mi Home app, create automation: 🔌 Trigger: * "Device on" (outlet). 🗣️ Action: “Voice text” (for example, “Phone charging»).