DHEIVER commited on
Commit
69aeb7e
·
verified ·
1 Parent(s): 7345218

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -50
app.py CHANGED
@@ -3,62 +3,54 @@ import tempfile
3
  from TTS.utils.synthesizer import Synthesizer
4
  from huggingface_hub import hf_hub_download
5
 
 
6
  REPO_ID = "mbarnig/lb-de-fr-en-pt-coqui-vits-tts"
7
 
8
- my_title = "🇩🇪 🇫🇷 🇬🇧 🇵🇹 Mir schwätzen och Lëtzebuergesch ! 🇱🇺"
9
- my_description = "First multilingual-multispeaker Text-to-Speech (TTS) synthesizer speaking Luxembourgish. This model is based on [YourTTS](https://github.com/Edresson/YourTTS), thanks to 🐸 [Coqui.ai](https://coqui.ai/)."
10
- lb_text = "An der Zäit hunn sech den Nordwand an d'Sonn gestridden, wie vun hinnen zwee wuel méi staark wier, wéi e Wanderer, deen an ee waarme Mantel agepak war, iwwert de Wee koum."
11
- de_text = "Einst stritten sich Nordwind und Sonne, wer von ihnen beiden wohl der Stärkere wäre, als ein Wanderer, der in einen warmen Mantel gehüllt war, des Weges daherkam."
12
- fr_text = "La bise et le soleil se disputaient, chacun assurant qu'il était le plus fort, quand ils ont vu un voyageur qui s'avançait, enveloppé dans son manteau."
13
- en_text = "The North Wind and the Sun were disputing which was the stronger, when a traveler came along wrapped in a warm cloak."
14
  pt_text = "O vento norte e o Sol discutiam quem era o mais forte, quando surgiu um viajante envolvido numa capa."
15
 
 
16
  TTS_VOICES = [
17
- "Bernard",
18
- "Bunny",
19
- "Ed",
20
- "Guy",
21
- "Judith",
22
- "Kerstin",
23
- "Linda",
24
- "Thorsten"
25
- ]
26
-
27
- TTS_LANGUAGES = [
28
- "Deutsch",
29
- "English",
30
- "Français",
31
- "Lëtzebuergesch",
32
- "Português"
33
  ]
34
 
 
35
  my_examples = [
36
- [lb_text, "Judith", "Lëtzebuergesch"],
37
- [de_text, "Thorsten", "Deutsch"],
38
- [fr_text, "Bernard", "Français"],
39
- [en_text, "Linda", "English"],
40
- [pt_text, "Ed", "Português"]
41
  ]
42
 
43
- my_article = "<h3>User guide</h3><p>1. Press the Submit button to generate a speech file with the default values. 2. Change the default values by clicking an example row. 3. Select a language and a voice and enter your own text. Have fun!</p><p>Go to <a href='https://www.web3.lu/category/audio-technologies/'>Internet with a Brain</a> to read some technical infos.</p>"
 
 
 
 
 
 
 
44
 
 
45
  my_inputs = [
46
- gr.Textbox(lines=5, label="Input Text"),
47
- gr.Radio(label="Speaker", choices = TTS_VOICES, value = "Judith"),
48
- gr.Radio(label="Language", choices = TTS_LANGUAGES, value = "Lëtzebuergesch"),
49
  ]
50
 
51
- my_outputs = gr.Audio(type="filepath", label="Output Audio")
52
 
53
- def tts(text: str, speaker_idx: str, language_idx: str):
54
- best_model_path = hf_hub_download(repo_id=REPO_ID, filename="best_model.pth")
 
 
55
  config_path = hf_hub_download(repo_id=REPO_ID, filename="config.json")
56
  speakers_path = hf_hub_download(repo_id=REPO_ID, filename="speakers.pth")
57
  languages_path = hf_hub_download(repo_id=REPO_ID, filename="language_ids.json")
58
  speaker_encoder_model_path = hf_hub_download(repo_id=REPO_ID, filename="model_se.pth")
59
  speaker_encoder_config_path = hf_hub_download(repo_id=REPO_ID, filename="config_se.json")
60
-
61
- # init synthesizer
62
  synthesizer = Synthesizer(
63
  best_model_path,
64
  config_path,
@@ -71,20 +63,25 @@ def tts(text: str, speaker_idx: str, language_idx: str):
71
  False
72
  )
73
 
74
- # create audio file
75
- wavs = synthesizer.tts(text, speaker_idx, language_idx)
76
- with tempfile.NamedTemporaryFile(suffix = ".wav", delete = False) as fp:
77
- synthesizer.save_wav(wavs, fp)
78
- return fp.name
79
-
 
 
 
80
  iface = gr.Interface(
81
- fn=tts,
82
- inputs=my_inputs,
83
- outputs=my_outputs,
84
- title=my_title,
85
- description = my_description,
86
- article = my_article,
87
- examples = my_examples,
88
  allow_flagging=False
89
  )
90
- iface.launch()
 
 
 
3
  from TTS.utils.synthesizer import Synthesizer
4
  from huggingface_hub import hf_hub_download
5
 
6
+ # Repositório do modelo no Hugging Face Hub
7
  REPO_ID = "mbarnig/lb-de-fr-en-pt-coqui-vits-tts"
8
 
9
+ # Configurações da interface
10
+ my_title = "🇵🇹 Sintetizador de Fala em Português com Coqui TTS"
11
+ my_description = "Um sintetizador de fala em português baseado no modelo YourTTS da Coqui.ai. Insira o texto e gere o áudio!"
 
 
 
12
  pt_text = "O vento norte e o Sol discutiam quem era o mais forte, quando surgiu um viajante envolvido numa capa."
13
 
14
+ # Vozes disponíveis para português
15
  TTS_VOICES = [
16
+ "Ed", # Voz masculina
17
+ "Linda" # Voz feminina
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  ]
19
 
20
+ # Exemplo de uso
21
  my_examples = [
22
+ [pt_text, "Ed"], # Texto em português com voz masculina
23
+ [pt_text, "Linda"] # Texto em português com voz feminina
 
 
 
24
  ]
25
 
26
+ # Artigo com informações adicionais
27
+ my_article = """
28
+ <h3>Guia do Usuário</h3>
29
+ <p>1. Insira o texto em português no campo de entrada.</p>
30
+ <p>2. Selecione a voz desejada (masculina ou feminina).</p>
31
+ <p>3. Clique em "Submit" para gerar o áudio.</p>
32
+ <p>4. Reproduza o áudio gerado ou faça o download.</p>
33
+ """
34
 
35
+ # Componentes de entrada e saída
36
  my_inputs = [
37
+ gr.Textbox(lines=5, label="Texto em Português", placeholder="Insira o texto aqui..."),
38
+ gr.Radio(label="Voz", choices=TTS_VOICES, value="Ed") # Voz padrão: masculina
 
39
  ]
40
 
41
+ my_outputs = gr.Audio(type="filepath", label="Áudio Gerado")
42
 
43
+ # Função para sintetizar a fala
44
+ def tts(text: str, speaker_idx: str):
45
+ # Baixar os arquivos do modelo
46
+ best_model_path = hf_hub_download(repo_id=REPO_ID, filename="best_model.pth")
47
  config_path = hf_hub_download(repo_id=REPO_ID, filename="config.json")
48
  speakers_path = hf_hub_download(repo_id=REPO_ID, filename="speakers.pth")
49
  languages_path = hf_hub_download(repo_id=REPO_ID, filename="language_ids.json")
50
  speaker_encoder_model_path = hf_hub_download(repo_id=REPO_ID, filename="model_se.pth")
51
  speaker_encoder_config_path = hf_hub_download(repo_id=REPO_ID, filename="config_se.json")
52
+
53
+ # Inicializar o sintetizador
54
  synthesizer = Synthesizer(
55
  best_model_path,
56
  config_path,
 
63
  False
64
  )
65
 
66
+ # Gerar o áudio
67
+ wavs = synthesizer.tts(text, speaker_idx, "Português") # Idioma fixo: Português
68
+
69
+ # Salvar o áudio em um arquivo temporário
70
+ with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as fp:
71
+ synthesizer.save_wav(wavs, fp)
72
+ return fp.name
73
+
74
+ # Criar a interface Gradio
75
  iface = gr.Interface(
76
+ fn=tts,
77
+ inputs=my_inputs,
78
+ outputs=my_outputs,
79
+ title=my_title,
80
+ description=my_description,
81
+ article=my_article,
82
+ examples=my_examples,
83
  allow_flagging=False
84
  )
85
+
86
+ # Iniciar a interface
87
+ iface.launch()