RVC Termux Android

Last update: March 17, 2026

Last Tested on Honor 90 Lite — Termux v0.118.3 — proot-distro v4.38.0 — Ubuntu 25.10 (Questing)


Introduction

  • This guide allows you to run RVC Locally on your Android phone via Termux, a Linux Terminal Emulator.

  • After setup, it can work without the Internet. Setup time depends on your internet speed.

  • Performance depends on your phone's CPU speed. It's recommended to only do inference. Long audios can cause the app to crash, it's best to split audios, especially on 6 GB RAM phones.

  • TTS Offline is not available, as Applio uses the Microsoft Edge API.


Requirements

Requirement Minimum Recommended
Storage ~6 GB + model storage More depending on models/usage
RAM 6 GB 8 GB+
OS Android 5.0 Android 10+
CPU Architecture aarch32 / armv7-a aarch64 / arm64

Download Termux

Download Termux from its GitHub Installation Page. The F-Droid method is recommended.


Setup Environment

Run each command in order inside Termux:


1. Install packages and set up Ubuntu in Termux. Allow storage access if prompted.

pkg update && pkg upgrade -y && termux-setup-storage && pkg install git proot proot-distro -y && proot-distro install ubuntu && proot-distro login ubuntu

2. Update package lists and the distribution:

apt update -y && apt dist-upgrade -y

3. Install required packages:

apt install git libportaudio2 -y

4. Set the maximum HTTP/HTTPS push buffer size to 2 GB:

git config --global http.postBuffer 2097152000 && git config --global https.postBuffer 2097152000

5. Force HTTP/1.1 to prevent framing layer errors:

git config --global http.version HTTP/1.1

6. Ensure localhost is properly defined:

echo "127.0.0.1 127.0.0.0 localhost" >> /etc/hosts

Applio Setup

1. Clone the Applio repository (uses the latest main branch by default):

git clone https://github.com/IAHispano/Applio && cd Applio

2. Patch the installer and requirements before running them.

proot-distro has several limitations that break UV's default behaviour. The following patches address all of them:

  • run-install.sh needs sudo removed (not available in proot), UV_LINK_MODE=copy and UV_NO_CACHE=1 exported so UV installs directly into the venv without cross-filesystem hardlinks or cache references (both of which proot breaks), --python-platform aarch64-unknown-linux-gnu added so UV resolves aarch64 wheels instead of defaulting to x86_64, and its CUDA PyTorch index changed to the CPU one while keeping it as --extra-index-url so PyPI stays available for all other packages.
  • requirements.txt hardcodes +cu128 builds of torch/torchaudio/torchvision for Linux (no aarch64 wheels exist for these).

Run all patches in one go:

sed -i 's/sudo //g' run-install.sh \
&& sed -i '/^set -e/a export UV_LINK_MODE=copy\nexport UV_NO_CACHE=1' run-install.sh \
&& sed -i 's|uv pip install|uv pip install --python-platform aarch64-unknown-linux-gnu|g' run-install.sh \
&& sed -i 's|--extra-index-url https://download.pytorch.org/whl/cu[0-9]*|--extra-index-url https://download.pytorch.org/whl/cpu|g' run-install.sh \
&& sed -i 's|torch==\([^+;]*\)+cu[0-9]*|torch==\1|g' requirements.txt \
&& sed -i 's|torchaudio==\([^+;]*\)+cu[0-9]*|torchaudio==\1|g' requirements.txt \
&& sed -i 's|torchvision==\([^+;]*\)+cu[0-9]*|torchvision==\1|g' requirements.txt

3. Install Applio:

chmod +x run-install.sh && ./run-install.sh

4. Launch Applio:

chmod +x run-applio.sh && ./run-applio.sh

5. Wait until the terminal shows Running on local URL: http://127.0.0.1:6969. Then open your browser (in multitasking or window mode) and navigate to:

localhost:6969

6. To exit: press Ctrl + C, close the app, and fully stop it from the Termux notification by pressing EXIT.


7. To resume later:

proot-distro login ubuntu
cd Applio && ./run-applio.sh

8. To update:

proot-distro login ubuntu
rm -rf Applio

Then restart from Step 1 of the Applio Setup section.


Applio Usage

Now that you have the web interface running, the rest of the process is almost identical to using a Local Applio PC Installation.

For all subsequent steps please continue by following the Local Applio PC Guide.

Continue with the Local Applio PC Guide


Performance Examples

NOTE: Those benchmarks are based on the First Inference of a model on startup, which may contain a warmup time and future inferences might take less time.

Applio v3.2.7 on Ubuntu 24.04 (Noble)

Device Audio Length Conversion Time Notes
Honor 90 Lite 8 seconds 69.08 seconds None
Pixel 6 Pro (12 GB RAM) 13 seconds ~109 seconds rmvpe + contentvec, EX kernel manager
Galaxy A9 2018 (6 GB RAM) 10 seconds ~147 seconds Longer audio causes crash
Proof of First Inference time on Applio V3.2.7 on Honor 90 Lite

Applio v3.6.2 on Ubuntu 25.10 (Questing) on Termux v0.118.3 with proot-distro v4.38.0

Device Audio Length Conversion Time Notes
Honor 90 Lite 8 seconds 58.39 seconds None
Proof of First Inference time on Applio V3.6.2 on Honor 90 Lite

FAQ / Troubleshooting

Termux is Android only. iPhone alternatives include:

Applio is the easiest to use: it automatically creates the venv and allows direct file uploads via the WebUI, unlike Mainline. Moving files from phone storage to Termux Ubuntu is otherwise difficult. There was previously also easyGUI but it's no longer maintained now.

Applio only:

proot-distro login ubuntu
rm -rf Applio

Everything: Delete the entire Termux app.

1. Open Termux and log into Ubuntu:

proot-distro login ubuntu

2. Find your local IP address:

apt install net-tools -y && ifconfig

Look for an IP in one of these ranges:

  • 192.168.x.x
  • 10.x.x.x
  • 172.16.x.x to 172.31.x.x

3. Set the server name and launch:

  • Applio:
export GRADIO_SERVER_NAME="0.0.0.0"
cd Applio && ./run-applio.sh

Then on the other device open http://<your-phone-ip>:6969.

4. To revert:

  • Applio: Restart the Termux session, or run unset GRADIO_SERVER_NAME.

1. Log into Ubuntu:

proot-distro login ubuntu

2. Patch run-applio.sh to forward arguments to Python. Without this, --share is consumed by the shell script and never reaches app.py:

sed -i 's|python app.py --open|python app.py --open "$@"|' ~/Applio/run-applio.sh

3. Build or download the frpc binary needed for public tunnelling:

  • For aarch64 (pre-built, recommended):

    • Applio:
    apt update && apt install wget -y && wget -O frpc_linux_aarch64_v0.2 "https://huggingface.co/Nick088/termux-built-arm64-files/resolve/main/pre-built-binaries/frpc_linux_aarch64_v0.2?download=true" && mv frpc_linux_aarch64_v0.2 ~/Applio/.venv/lib/python3.12/site-packages/gradio/frpc_linux_aarch64_v0.2
  • For other architectures (manually build): check your arch with uname -m and replace aarch64 in the destination path accordingly.

    • Applio:
    apt install golang-go -y && git clone https://github.com/huggingface/frp && cd frp && make frpc && mv bin/frpc ~/Applio/.venv/lib/python3.12/site-packages/gradio/frpc_linux_aarch64_v0.2 && cd ..

4. Launch with sharing enabled:

cd Applio && ./run-applio.sh --share

Wait for Running on Public url and share that link.

5. To revert (press Ctrl+C first), simply launch normally without --share:

./run-applio.sh

To fully restore all changes:

sed -i 's|python app.py --open "$@"|python app.py --open|' ~/Applio/run-applio.sh
rm -rf ~/frp && rm -rf ~/Applio/.venv/lib/python3.12/site-packages/gradio/frpc_linux_aarch64_v0.2 && apt purge golang-go -y

Ensure your phone has at least 6 GB of RAM and try using a shorter audio clip.

Read Timeout Error

This means your connection is too slow and uv pip is hitting its default timeout. Make sure you are still inside the Applio folder and try the following:

  • Use a better internet connection, or
  • Increase the UV HTTP timeout:
    • Applio: export UV_HTTP_TIMEOUT=200 && ./run-install.sh

If it still fails, increase the value beyond 200 and try again.

Train normally in Applio, check the Local PC Guide for reference. If clicking Start Training produces an error like:

RuntimeError: [enforce fail at .../gloo/transport/tcp/device.cc:184] rv != -1. -1 vs -1. Permission denied

Press Ctrl+C and apply the fix:

  • Applio:
cd ~/Applio
sed -i '/dist\.init_process_group(/,/)/s/^/#/' rvc/train/train.py
./run-applio.sh

Select your project, and click Start Training. Use very short datasets and a low batch size (2, 4, or 6) to reduce crash risk.

Example (Honor 90 Lite with Applio v3.6.2, default settings):

  • Dataset: 1:58 min | Sample Rate: 40k | Architecture: V2
  • Preprocess time: 15.25s
  • Pitch extraction (rmvpe, CPU): 194.91s
  • Embedding extraction (8 cores, CPU): 88.39s
  • Index generated successfully
  • ⚠️ Crashed shortly after the first training epoch began (shortly after the third step)

Example (Honor 90 Lite with Applio v3.2.7):

  • Dataset: 1:58 min | Sample Rate: 40k | Architecture: V2
  • Preprocess time: 21.29s
  • Pitch extraction (rmvpe, 8 CPU cores): ~319.96s
  • Embed extraction (contentvec): ~62.69s
  • Index generated successfully
  • ⚠️ Crashed while training the first epoch

This was a requirement in an older Applio version (before 3.2.8-bugfix) and in easyGUI (now removed as no longer maintained). Kept here for reference and possible future usage.

  1. In Termux (not Ubuntu), create a symlink to make files accessible:
ln -rs $PREFIX/var/lib/proot-distro/installed-rootfs $HOME/proot-distro-rootfs
  1. Log into Ubuntu: proot-distro login ubuntu
  2. Install build dependencies (required to compile praat-parselmouth from source):
apt install build-essential python3.10-dev libx11-dev -y
  1. Run pip3.10 install praat-parselmouth. This builds from source and takes 30-40 minutes as no official pre-built wheel exists (see this issue).
  2. Package it as a wheel:
python3.10 -m venv my_praat_env && source my_praat_env/bin/activate && pip install wheel && pip install praat-parselmouth && pip wheel --wheel-dir dist/ praat-parselmouth
  1. Output: ./dist/praat_parselmouth-0.4.4-cp310-cp310-linux_aarch64.whl
  2. Access the file via Material Files (by Hai Zhang): grant full file access → Add Storage → External → Termux → proot-distro-rootfs → ubuntu → root → dist. Copy the .whl file to storage and upload to HuggingFace.
  • Report your issue here.

You have reached the end.

Report Issues