JyuViole commited on
Commit
4169f5f
·
verified ·
1 Parent(s): 7775f84

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +71 -2
app.py CHANGED
@@ -1,3 +1,4 @@
 
1
  import gc
2
  import json
3
  import re
@@ -59,7 +60,7 @@ DEFAULT_TTS_MODEL_CFG = [
59
 
60
  # Конфигурация для F5-TTS_RUSSIAN (русский)
61
  RUSSIAN_TTS_MODEL_CFG = [
62
- "hf://Misha24-10/F5-TTS_RUSSIAN/model_240000_inference.safetensors",
63
  "hf://Misha24-10/F5-TTS_RUSSIAN/vocab.txt",
64
  json.dumps(dict(dim=1024, depth=22, heads=16, ff_mult=2, text_dim=512, conv_layers=4)),
65
  ]
@@ -402,6 +403,12 @@ with gr.Blocks() as app_multistyle:
402
  outputs=[speech_type_rows[i], speech_type_names[i], speech_type_audios[i], speech_type_ref_texts[i], speech_type_languages[i]],
403
  )
404
 
 
 
 
 
 
 
405
  def make_insert_speech_type_fn(index):
406
  def insert_speech_type_fn(current_text, speech_type_name):
407
  current_text = current_text or ""
@@ -483,6 +490,7 @@ with gr.Blocks() as app_multistyle:
483
  )
484
 
485
  def validate_speech_types(gen_text, regular_name, *args):
 
486
  speech_types_available = set()
487
  if regular_name:
488
  speech_types_available.add(regular_name)
@@ -861,4 +869,65 @@ if __name__ == "__main__":
861
  if not USING_SPACES:
862
  main()
863
  else:
864
- app.queue().launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ```python
2
  import gc
3
  import json
4
  import re
 
60
 
61
  # Конфигурация для F5-TTS_RUSSIAN (русский)
62
  RUSSIAN_TTS_MODEL_CFG = [
63
+ "hf://Misha24-10/F5-TTS_RUSSIAN/F5TTS_v1_Base/model_240000_inference.safetensors",
64
  "hf://Misha24-10/F5-TTS_RUSSIAN/vocab.txt",
65
  json.dumps(dict(dim=1024, depth=22, heads=16, ff_mult=2, text_dim=512, conv_layers=4)),
66
  ]
 
403
  outputs=[speech_type_rows[i], speech_type_names[i], speech_type_audios[i], speech_type_ref_texts[i], speech_type_languages[i]],
404
  )
405
 
406
+ gen_text_input_multistyle = gr.Textbox(
407
+ label="Text to Generate",
408
+ lines=10,
409
+ placeholder="Enter the script with speaker names (or emotion types) at the start of each block, e.g.:\n\n{Regular} Привет, я хочу заказать пиццу.\n{Surprised} What, no pepperoni?\n{Sad} Я так хотел пиццу...\n{Angry} Ты что, шутишь?\n{Whisper} Ладно, я уйду.\n{Shouting} Почему так всегда?!",
410
+ )
411
+
412
  def make_insert_speech_type_fn(index):
413
  def insert_speech_type_fn(current_text, speech_type_name):
414
  current_text = current_text or ""
 
490
  )
491
 
492
  def validate_speech_types(gen_text, regular_name, *args):
493
+ speech_type_names_list = args[:max_speech_types]
494
  speech_types_available = set()
495
  if regular_name:
496
  speech_types_available.add(regular_name)
 
869
  if not USING_SPACES:
870
  main()
871
  else:
872
+ app.queue().launch()
873
+ ```
874
+
875
+ ### Изменения
876
+ 1. **Обновлён `RUSSIAN_TTS_MODEL_CFG`**:
877
+ - Путь к модели изменён на `"hf://Misha24-10/F5-TTS_RUSSIAN/F5TTS_v1_Base/model_240000_inference.safetensors"`, чтобы соответствовать расположению файла в папке `F5TTS_v1_Base`.
878
+ - Путь к `vocab.txt` остался `"hf://Misha24-10/F5-TTS_RUSSIAN/vocab.txt"`, так как вы подтвердили его наличие в корне.
879
+ - Конфигурация модели осталась без изменений, так как она соответствует документации.
880
+
881
+ 2. **Исправлен `NameError`**:
882
+ - В блоке `app_multistyle` цикл для привязки кнопок `speech_type_insert_btns` перемещён после определения `gen_text_input_multistyle`, чтобы избежать ошибки `NameError`.
883
+
884
+ ### Что делать дальше
885
+ 1. **Замените `app.py`**:
886
+ - Сохраните код выше как `app.py`, заменив существующий файл в вашем проекте.
887
+
888
+ 2. **Очистите кэш**:
889
+ - Удалите кэш Hugging Face, чтобы избежать проблем с ранее загруженными файлами:
890
+ ```bash
891
+ rm -rf ~/.cache/huggingface/
892
+ ```
893
+
894
+ 3. **Запустите приложение**:
895
+ - Выполните:
896
+ ```bash
897
+ python app.py
898
+ ```
899
+ - Проверьте консоль. Ожидаемый вывод: `F5-TTS_RUSSIAN loaded successfully.`. Если появляется ошибка `404`, уточните, пожалуйста, точное расположение файла `model_240000_inference.safetensors` в репозитории (например, если он в другой подпапке).
900
+
901
+ 4. **Протестируйте генерацию**:
902
+ - В интерфейсе выберите язык `ru` в поле `language_input` (вкладка "Basic-TTS") или `language_chat` (вкладка "Voice-Chat").
903
+ - Загрузите референсное аудио на русском языке (WAV или MP3, до 12 секунд).
904
+ - Введите текст с ударениями, например: `{Regular} Прив+ет, как дел+а?`.
905
+ - Нажмите "Synthesize" (или "Generate Multi-Style Speech" для мультистилевой генерации) и проверьте, генерируется ли русская речь.
906
+
907
+ ### Если проблема сохраняется
908
+ Если модель всё ещё не загружается или не говорит по-русски:
909
+ 1. **Проверьте консоль**: Если появляется ошибка `404`, проверьте точный путь к файлу `model_240000_inference.safetensors` на [Hugging Face](https://huggingface.co/Misha24-10/F5-TTS_RUSSIAN/tree/main). Если он в другой папке, обновите путь в `RUSSIAN_TTS_MODEL_CFG`.
910
+ 2. **Попробуйте другой чекпоинт**: Если `model_240000_inference.safetensors` не работает, попробуйте `model_240000.pt`:
911
+ ```python
912
+ RUSSIAN_TTS_MODEL_CFG = [
913
+ "hf://Misha24-10/F5-TTS_RUSSIAN/F5TTS_v1_Base/model_240000.pt",
914
+ "hf://Misha24-10/F5-TTS_RUSSIAN/vocab.txt",
915
+ json.dumps(dict(dim=1024, depth=22, heads=16, ff_mult=2, text_dim=512, conv_layers=4)),
916
+ ]
917
+ ```
918
+ 3. **Проверьте язык**: Убедитесь, что в интерфейсе выбран `ru`. Для отладки добавьте в функцию `infer` перед `if language == "ru":`:
919
+ ```python
920
+ print(f"Language selected: {language}, using model: {'F5-TTS_RUSSIAN' if language == 'ru' else model}")
921
+ ```
922
+ Проверьте, что выводится в консоли.
923
+ 4. **Проверьте референсное аудио**: Убедитесь, что аудио на русском языке.
924
+
925
+ ### Дополнительно
926
+ - **Ударения**: Для лучшего качества русской речи добавляйте ударения в текст (например, `молок+о`). Если хотите автоматизировать этот процесс, могу предложить интегрировать библиотеку `ruaccent` для автоматической расстановки ударений. Напишите, если это нужно.
927
+ - **Логи**: Если ошибка сохраняется, предоставьте новый лог консоли, а также:
928
+ - Какой текст вы вводите.
929
+ - Какое референсное аудио используете (на русском или нет).
930
+ - Какой язык выбран в интерфейсе.
931
+ - На каком языке генерируется аудио.
932
+
933
+ Если всё сработает, дайте знать, чтобы я мог подтвердить, что проблема решена!