How to make a talking charger on Xiaomi Redmi 9: voice alerts when connecting to the network

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:

  1. Install the app from Google Play.
  2. 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:

  1. Install Tasker and AutoNotification.
  2. In Tasker, create a new profile (Profile → Event → Power → Power Connected).
  3. Add Task → New Task with Say (in Alert category).
  4. In the Text box, type a voiceover phrase, such as, "Charging is connected. Current level: %BATT."
  5. 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:

  1. 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).
  2. Get Redmi on board. 9 ← Adb shell settings put secure enabled_accessibility_services com.android.tts/.TtsService
  3. 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

MethodDifficultyRoot 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?
If voice alerts do not play back after setting up, check: 1. Permissions: Make sure the app is given access to Special Features and Notifications. 2. TTS-Engine: In the phone settings (Settings) → System system → Language and input → Text to speech) select Google Text-to-Speech and download Russian. 3. Energy saving: Disable battery optimization for the application in Settings → Battery → Battery optimization. 4 Conflicts: Some applications (e.g. Clean Master) can block background activity. Remove them or add exceptions.

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 causeDecision
Voice not playedAbsent. TTS-engineInstall Google Text-to-Speech from Play Market
Alerts are triggered with a delayOptimizing the batteryTurn off optimization for the application in MIUI settings
All notifications are madeIncorrect filtersSet up rules in Tasker or blacklist in Notification Announcer
The app closes itselfMIUI kills background processesAdd 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:

  1. Go to Settings → Privacy → Special Access → System Logs.
  2. 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:

  1. Connect the Mi Smart Plug to the socket that has the Redmi 9 charging plug in.
  2. In the Mi Home app, create automation: 🔌 Trigger: * "Device on" (outlet). 🗣️ Action: “Voice text” (for example, “Phone charging»).

FAQ: Frequent questions about talking charging on Redmi 9

Can I make voice alerts without third-party apps?
There is no such feature in standard Redmi 9 firmware, but custom firmware (like LineageOS) can be configured to voice through system tools. TTS And Tasker without any extra software. ADB-commands to modify system notifications (requires an unlocked bootloader).
Why does the voice stop or sound timid?
This is a typical problem when using offline voices in Google Text-to-Speech. Solutions: Download the full voice package for Russian in the TTS settings. Reduce the speech speed in the application settings (for example, in Notification Announcer). Check if MIUI blocks background sound playback (turn off Battery Optimization for the application).
Will the charger talk if the phone is turned off?
No. Voice alerts only work when the phone is on, because they are responsible for applications or system services. If you want to track charging when it's off, use external devices (for example, a smart socket with a speaker).
How to turn off voice alerts if they are tired?
The ways to disable it depend on the method of setting: For Notification Announcer: open the application and uncheck the tick from Voice notifications. For Tasker: disable the profile in the main menu or delete the task. ADB-method: remove the script from /data/local/userinit.d/ Or run the command: adb shell settings put secure enabled_accessibility_services ""
Can I change my voice (for example, to a male or a child's voice)?
Yes. Text-to-Speech settings (Settings) → System system → Language and input → Text to speech) you can select another voice packet, such as: Install. IVONA Or eSpeak from Google Play. In Tasker or Notification Announcer, specify the desired TTS-For custom voices (like celebrity voices), use apps like Voice Changer (you need to record your own phrases).