Skip to content

Commit 7526cb9

Browse files
authored
Merge pull request #1191 from IAHispano/client
Realtime - Client
2 parents 5209bbb + 1e89ebb commit 7526cb9

70 files changed

Lines changed: 3340 additions & 12 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import gradio as gr
77
import sys
88
import os
9+
import pathlib
910
import logging
1011

1112
from typing import Any
@@ -35,7 +36,6 @@
3536
from tabs.voice_blender.voice_blender import voice_blender_tab
3637
from tabs.plugins.plugins import plugins_tab
3738
from tabs.settings.settings import settings_tab
38-
from tabs.realtime.realtime import realtime_tab
3939

4040
# Run prerequisites
4141
from core import run_prerequisites_script
@@ -68,10 +68,11 @@
6868
import assets.themes.loadThemes as loadThemes
6969

7070
my_applio = loadThemes.load_theme() or "ParityError/Interstellar"
71+
client_mode = "--client" in sys.argv
7172

7273
# Define Gradio interface
7374
with gr.Blocks(
74-
theme=my_applio, title="Applio", css="footer{display:none !important}"
75+
theme=my_applio, title="Applio", css="footer{display:none !important}", js=pathlib.Path(os.path.join(now_dir, "tabs", "realtime", "main.js")).read_text() if client_mode else None
7576
) as Applio:
7677
gr.Markdown("# Applio")
7778
gr.Markdown(
@@ -97,6 +98,11 @@
9798
voice_blender_tab()
9899

99100
with gr.Tab(i18n("Realtime")):
101+
if client_mode:
102+
from tabs.realtime.realtime_client import realtime_tab
103+
else:
104+
from tabs.realtime.realtime import realtime_tab
105+
100106
realtime_tab()
101107

102108
with gr.Tab(i18n("Plugins")):
@@ -124,14 +130,22 @@
124130

125131

126132
def launch_gradio(server_name: str, server_port: int) -> None:
127-
Applio.launch(
133+
app, _, _ = Applio.launch(
128134
favicon_path="assets/ICON.ico",
129135
share="--share" in sys.argv,
130136
inbrowser="--open" in sys.argv,
131137
server_name=server_name,
132138
server_port=server_port,
139+
prevent_thread_lock=client_mode
133140
)
134141

142+
if client_mode:
143+
import time
144+
from rvc.realtime.client import app as fastapi_app
145+
app.mount("/api", fastapi_app)
146+
147+
while True:
148+
time.sleep(5)
135149

136150
def get_value_from_args(key: str, default: Any = None) -> Any:
137151
if key in sys.argv:

assets/Applio.ipynb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -273,17 +273,17 @@
273273
"\n",
274274
"match method:\n",
275275
" case 'gradio':\n",
276-
" !python app.py --listen --share\n",
276+
" !python app.py --listen --share --client\n",
277277
" case 'localtunnel':\n",
278278
" !echo Password IP: $(curl --silent https://ipv4.icanhazip.com)\n",
279279
" !echo\n",
280-
" !lt --port 6969 & python app.py --listen\n",
280+
" !lt --port 6969 & python app.py --listen --client\n",
281281
" case 'ngrok':\n",
282282
" import ngrok\n",
283283
" ngrok.kill()\n",
284284
" listener = await ngrok.forward(6969, authtoken=ngrok_token)\n",
285285
" print(f\"Ngrok URL: {listener.url()}\")\n",
286-
" !python app.py --listen"
286+
" !python app.py --listen --client"
287287
]
288288
}
289289
],

assets/Applio_Kaggle.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@
277277
" print(f\"FileBrowser Public URL: {f_tunnel}\")\n",
278278
"\n",
279279
"print(\"Save your links for later, this will take a while...\")\n",
280-
"!python app.py --host 0.0.0.0 --port 6969 $share_option\n",
280+
"!python app.py --client --host 0.0.0.0 --port 6969 $share_option\n",
281281
"\n",
282282
"# kills previously running processes\n",
283283
"!fuser -k 6969/tcp\n",

assets/i18n/languages/af_AF.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"4. Complete the provided issue template, ensuring to include details as needed, and utilize the assets section to upload the recorded file from the previous step.": "4. Voltooi die voorsiende probleem-sjabloon, maak seker dat u besonderhede insluit soos nodig, en gebruik die bates-afdeling om die opgeneemde lêer van die vorige stap op te laai.",
1212
"A simple, high-quality voice conversion tool focused on ease of use and performance.": "'n Eenvoudige, hoë-gehalte stemomskakelingsinstrument gefokus op gebruiksgemak en werkverrigting.",
1313
"Adding several silent files to the training set enables the model to handle pure silence in inferred audio files. Select 0 if your dataset is clean and already contains segments of pure silence.": "Die byvoeging van verskeie stil lêers by die oefenstel stel die model in staat om suiwer stilte in afgeleide klanklêers te hanteer. Kies 0 as u datastel skoon is en reeds segmente van suiwer stilte bevat.",
14+
"Adds a keyword filter for the model/index selection lists in the Inference and TTS tabs.": "Voeg 'n sleutelwoordfilter by vir die model/indeks seleksielyste in die Inferensie en TTS-oortjies.",
1415
"Adjust the input audio pitch to match the voice model range.": "Pas die insetklank se toonhoogte aan om by die stemmodel se reeks te pas.",
1516
"Adjusting the position more towards one side or the other will make the model more similar to the first or second.": "Deur die posisie meer na die een of ander kant aan te pas, sal die model meer ooreenstem met die eerste of tweede.",
1617
"Adjusts the final volume of the converted voice after processing.": "Verstel die finale volume van die omgeskakelde stem na verwerking.",
@@ -93,6 +94,7 @@
9394
"Distortion Gain": "Vervorming Versterking",
9495
"Download": "Laai Af",
9596
"Download Model": "Laai Model Af",
97+
"Downloading pretrained model...": "Laai voorafopgeleide model af...",
9698
"Drag and drop your model here": "Sleep en los jou model hier",
9799
"Drag your .pth file and .index file into this space. Drag one and then the other.": "Sleep jou .pth lêer en .index lêer na hierdie spasie. Sleep eers die een en dan die ander.",
98100
"Drag your plugin.zip to install it": "Sleep jou plugin.zip om dit te installeer",
@@ -101,6 +103,7 @@
101103
"Enable Applio integration with Discord presence": "Aktiveer Applio-integrasie met Discord-teenwoordigheid",
102104
"Enable VAD": "Aktiveer VAD",
103105
"Enable formant shifting. Used for male to female and vice-versa convertions.": "Aktiveer formantverskuiwing. Word gebruik vir manlike na vroulike en omgekeerde omskakelings.",
106+
"Enable model/index list filter": "Aktiveer model/indekslysfilter",
104107
"Enable this setting only if you are training a new model from scratch or restarting the training. Deletes all previously generated weights and tensorboard logs.": "Aktiveer hierdie instelling slegs as u 'n nuwe model van nuuts af oplei of die opleiding herbegin. Vee alle voorheen gegenereerde gewigte en tensorboard-logboeke uit.",
105108
"Enables Voice Activity Detection to only process audio when you are speaking, saving CPU.": "Aktiveer Stemaktiwiteitbespeuring (VAD) om slegs klank te verwerk wanneer jy praat, wat SVE spaar.",
106109
"Enables memory-efficient training. This reduces VRAM usage at the cost of slower training speed. It is useful for GPUs with limited memory (e.g., <6GB VRAM) or when training with a batch size larger than what your GPU can normally accommodate.": "Aktiveer geheue-doeltreffende opleiding. Dit verminder VRAM-gebruik ten koste van 'n stadiger opleidingsspoed. Dit is nuttig vir GPU's met beperkte geheue (bv. <6GB VRAM) of wanneer met 'n bondelgrootte groter as wat u GPU normaalweg kan akkommodeer, geoefen word.",
@@ -114,6 +117,7 @@
114117
"Enter text to synthesize": "Voer teks in om te sintetiseer",
115118
"Enter the text to synthesize.": "Voer die teks in om te sintetiseer.",
116119
"Enter your nickname": "Voer jou bynaam in",
120+
"Exclusive Mode": "Eksklusiewe Modus",
117121
"Exclusive Mode (WASAPI)": "Eksklusiewe Modus (WASAPI)",
118122
"Export Audio": "Voer Klank Uit",
119123
"Export Format": "Uitvoerformaat",
@@ -128,6 +132,7 @@
128132
"Extract Features": "Onttrek Kenmerke",
129133
"F0 Curve": "F0-kurwe",
130134
"File to Speech": "Lêer na Spraak",
135+
"Filter": "Filter",
131136
"Folder Name": "Lêergids Naam",
132137
"For ASIO drivers, selects a specific input channel. Leave at -1 for default.": "Vir ASIO-drywers, kies 'n spesifieke invoerkanaal. Laat op -1 vir verstek.",
133138
"For ASIO drivers, selects a specific monitor output channel. Leave at -1 for default.": "Vir ASIO-drywers, kies 'n spesifieke monitor-uitvoerkanaal. Laat op -1 vir verstek.",
@@ -143,6 +148,7 @@
143148
"General": "Algemeen",
144149
"Generate Index": "Genereer Indeks",
145150
"Get information about the audio": "Kry inligting oor die klank",
151+
"Gives the app exclusive control for potentially lower latency.": "Gee die toepassing eksklusiewe beheer vir moontlik laer latensie.",
146152
"I agree to the terms of use": "Ek stem in tot die gebruiksvoorwaardes",
147153
"Increase or decrease TTS speed.": "Verhoog of verlaag TTS-spoed.",
148154
"Index Algorithm": "Indeks Algoritme",
@@ -176,6 +182,7 @@
176182
"Model used for learning speaker embedding.": "Model wat gebruik word om spreker-inbedding te leer.",
177183
"Monitor ASIO Channel": "Monitor ASIO-kanaal",
178184
"Monitor Device": "Monitortoestel",
185+
"Monitor Device (Optional)": "Monitortoestel (Opsioneel)",
179186
"Monitor Gain (%)": "Monitorversterking (%)",
180187
"Move files to custom embedder folder": "Skuif lêers na pasgemaakte inbedder-lêergids",
181188
"Name of the new dataset.": "Naam van die nuwe datastel.",
@@ -196,6 +203,7 @@
196203
"Overtraining Detector": "Oor-opleiding Bespeurder",
197204
"Overtraining Detector Settings": "Oor-opleiding Bespeurder Instellings",
198205
"Overtraining Threshold": "Oor-opleiding Drempel",
206+
"Path must contain:": "Pad moet bevat:",
199207
"Path to Model": "Pad na Model",
200208
"Path to the dataset folder.": "Pad na die datastel-lêergids.",
201209
"Performance Settings": "Werkverrigting-instellings",
@@ -207,6 +215,7 @@
207215
"Please ensure compliance with the terms and conditions detailed in [this document](https://github.com/IAHispano/Applio/blob/main/TERMS_OF_USE.md) before proceeding with your inference.": "Verseker asseblief voldoening aan die bepalings en voorwaardes soos uiteengesit in [hierdie dokument](https://github.com/IAHispano/Applio/blob/main/TERMS_OF_USE.md) voordat u met u afleiding voortgaan.",
208216
"Please ensure compliance with the terms and conditions detailed in [this document](https://github.com/IAHispano/Applio/blob/main/TERMS_OF_USE.md) before proceeding with your realtime.": "Verseker asseblief voldoening aan die bepalings en voorwaardes soos uiteengesit in [hierdie dokument](https://github.com/IAHispano/Applio/blob/main/TERMS_OF_USE.md) voordat jy met jou intydse sessie voortgaan.",
209217
"Please ensure compliance with the terms and conditions detailed in [this document](https://github.com/IAHispano/Applio/blob/main/TERMS_OF_USE.md) before proceeding with your training.": "Verseker asseblief voldoening aan die bepalings en voorwaardes soos uiteengesit in [hierdie dokument](https://github.com/IAHispano/Applio/blob/main/TERMS_OF_USE.md) voordat u met u opleiding voortgaan.",
218+
"Please provide at least one URL.": "Verskaf asseblief ten minste een URL.",
210219
"Plugin Installer": "Inprop Installeerder",
211220
"Plugins": "Inproppe",
212221
"Post-Process": "Na-verwerk",
@@ -219,12 +228,16 @@
219228
"Presets are located in /assets/formant_shift folder": "Voorinstellings is in die /assets/formant_shift-lêergids geleë",
220229
"Pretrained": "Vooraf-opgeleide",
221230
"Pretrained Custom Settings": "Vooraf-opgeleide Pasgemaakte Instellings",
231+
"Pretrained D": "Voorafopgeleide D",
232+
"Pretrained G": "Voorafopgeleide G",
233+
"Pretrained model downloaded successfully!": "Voorafopgeleide model suksesvol afgelaai!",
222234
"Proposed Pitch": "Voorgestelde Toonhoogte",
223235
"Proposed Pitch Threshold": "Voorgestelde Toonhoogte Drempel",
224236
"Protect Voiceless Consonants": "Beskerm Stemlose Konsonante",
225237
"Pth file": "Pth-lêer",
226238
"Quefrency for formant shifting": "Kefrensie vir formantverskuiwing",
227239
"Realtime": "Intyds",
240+
"Realtime not started.": "Intyds nie begin nie.",
228241
"Record Screen": "Neem Skerm Op",
229242
"Refresh": "Herlaai",
230243
"Refresh Audio Devices": "Verfris Klanktoestelle",
@@ -338,6 +351,7 @@
338351
"Timbre for formant shifting": "Timbre vir formantverskuiwing",
339352
"Total Epoch": "Totale Epogge",
340353
"Training": "Opleiding",
354+
"Type to filter...": "Tik om te filter...",
341355
"Unload Voice": "Ontlaai Stem",
342356
"Update precision": "Dateer presisie op",
343357
"Upload": "Laai Op",

0 commit comments

Comments
 (0)