Hemos mejorado aún más nuestra síntesis de voz pública

6cc6e0011d4d26aeded6f052080b1890







Actualización : olvidé el enlace al repositorio: https://github.com/snakers4/silero-models#text-to-speech y al colab con ejemplos: https://colab.research.google.com/github/snakers4 / silero- modelos / blob / master / examples_tts.ipynb







Estamos muy contentos de que a Habr le haya gustado nuestro último artículo . Hemos recibido muchos comentarios positivos y negativos. También en él hicimos una serie de promesas para desarrollar nuestra síntesis.







Hemos logrado un progreso significativo en estos puntos, pero el lanzamiento del ultimátum con todas las características nuevas y los altavoces puede llevar un tiempo relativamente largo, por lo que no querría quedarme en silencio de radio durante mucho tiempo. En este artículo, responderemos críticas justas y no tan críticas y compartiremos las buenas noticias sobre el desarrollo de nuestra síntesis.







En breve:







  • Hicimos nuestro codificador de voz 4 veces más rápido;
  • Hemos hecho que los modelos de empaque sean más convenientes;
  • Hicimos un modelo multihablante / multilingüe y "forzamos" a los hablantes a hablar idiomas "extranjeros";
  • ;
  • 15 — 1 ( 3-7 ) 5 ( ). ;
  • , . (, , , , ). — ;
  • , , - 5-10 , ;




, ,



. . . — ( ).







, ( — ). … . .







warning



, ( ), . ( , ).







(, , , ), :







  • ;
  • ( , , , );
  • ( 2 - 1-2);




silero-vad



, , silero-models



. , :







  • torch.hub



    , (omegaconf



    yaml- torchaudio



    ). PyTorch. , , ( , c " "). colab, standalone . - # Minimal Example to Run Locally



    ;
  • , , . ;


, ( - ), PyTorch 1.9. , .







torch.hub



:







import torch

language = 'ru'
speaker = 'kseniya_v2'
sample_rate = 16000
device = torch.device('cpu')

model, example_text = torch.hub.load(repo_or_dir='snakers4/silero-models',
                                     model='silero_tts',
                                     language=language,
                                     speaker=speaker)
model.to(device)  # gpu or cpu

audio = model.apply_tts(texts=[example_text],
                        sample_rate=sample_rate)
      
      





standalone :







import os
import torch

device = torch.device('cpu')
torch.set_num_threads(4)
local_file = 'model.pt'

if not os.path.isfile(local_file):
    torch.hub.download_url_to_file('https://models.silero.ai/models/tts/ru/v2_kseniya.pt',
                                   local_file)  

model = torch.package.PackageImporter(local_file).load_pickle("tts_models", "model")
model.to(device)

example_batch = ['     + +    .',
                 ' -  !',
                 '+ + +  +.']
sample_rate = 16000

audio_paths = model.save_wav(texts=example_batch,
                             sample_rate=sample_rate)
      
      







, 15 — 20 . , , , . 2-3 .







:







15 — 20
5-6 , ,
3 ,
1
-------------------------- ------------------------ ---------------------------------------------------------
5-6 , , ,
5-6 , , ,
5-6 , , ,
3 , , ,
1 , , ,
3 — 15 , , 3


, 6 :











, 6 :









, 3 :







, 3 .









, 3 :









, 1 :







1 .









, 1 :







1 .









, 3 — 15 :







, ? , - 3 .













:







, - ( ).







, , .







, , .









, , . . , . , , , .







, , "" ( LTV , - ), , , .







:







, :













, .







:







-. , : Mein König, das Fichtenbaum, Bundesausbildungsförderungsgesetz, die Ubüng.



.









. . , . , .







:







  • 5-6 (, );
  • , , 15 — 1 ;
  • , ;
  • ;
  • , , (40 — 100 ) ;




, "" -. . , .







, .































, , / , , .







photo_2021-05-17_18-05-35







, . . , , .







, .









, . , "" . , , " ".







4 ( 0.1 — 0.2 MOS ) :







8 kHz 16 kHz
v1 , 1 18 8
v2 , 1 70 35


, . , 10 . v2



.









, ( abandonware). , , " ".







:







  • . 100 — 200 . ;
  • , - ;
  • , ;


, , :







  • ( 130 ), 99.9%;
  • ( 540 ), 99.9%;
  • 1,300 ( );
  • ( , 2 ), 99%;
  • 3% -, (







    ,







    ). , ;


3% , , ( ). , — . .











:







  • ,



    (







    ,







    ), , . (



    , hard negative );




  • 99% ( hard positive, hard negative );
  • , . - —



    ;
  • ,



    .



    ;


, :



(



, -



,



).

(



) , .









, "", , .







:







  • middleware



    ;
  • / - - ;
  • , ;
  • ;


middleware



. / - , — + (1-2 ), .







— . , - . : " — ". "" , ( 0.25 — 0.5 ).







— , 1 1 . , STT . , . , ( ), — .







.







, - — . , - — .









:







  • 4 ;
  • ( );
  • ;




  • ;
  • ;


:







  • ;
  • (10+ );
  • , ;
  • ;
  • ;
  • ;




— — https://github.com/snakers4/silero-models#text-to-speechhttps://colab.research.google.com/github/snakers4/silero-models/blob/master/examples_tts.ipynb







— , . . 1 . .








All Articles