YouTube рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реИ

рдЫрд╡рд┐

рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреА рд╕реБрдмрд╣ рдореЗрдВ, рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рдЕрдЬреАрдм, рдкреГрдердХ рдФрд░ рдЕрд╕рд╛рдорд╛рдиреНрдп рджрд┐рдЦреЗред рдЖрдЬ, рдХрдИ рдПрдордПрд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рдЯреВрд▓рдХрд┐рдЯ рдХреЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдЪрд┐рдд рдореЗрдВ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡реИрд╕реЗ, рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рддрд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдЙрджреНрдпреЛрдЧ рд▓реАрдк рдФрд░ рд╕реАрдорд╛ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЙрддреНрдкрд╛рджрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЕрдкрдиреА рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдЖрдк рд╣рдорд╛рд░реА рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╕реЗрд╡рд╛ рдореЗрдВ рд╕реИрдХрдбрд╝реЛрдВ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд╣реА рд╡реАрдбрд┐рдпреЛ рд╕рд╛рдордЧреНрд░реА рдЦреЛрдЬрдиреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реИрдХрдбрд╝реЛрдВ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рддреЗ рдФрд░ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ: рдкрд╛рда, рдЪрд┐рддреНрд░, рд╡реАрдбрд┐рдпреЛ, рд▓реЗрдЦ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╡рд┐рднрд┐рдиреНрди рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВред

рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рд╕рд╛рдордЧреНрд░реА рдЦреЛрдЬ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рдПрдХ рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рд╡рд░рдг рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡реАрдбрд┐рдпреЛ рдпрд╛ рдЪрд┐рддреНрд░ рдХреЛ рдПрдХ рдирд╛рдо рджреЗрдВ, рдХрдИ рдЯреИрдЧ рдЪреЛрдЯ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рдПрдВрдЧреЗред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рд░ рдХреЛрдИ рдРрд╕реЗ рд╕рд╛рдордЧреНрд░реА рд╕реБрдзрд╛рд░ рдкрд░ рд╕рдордп рдирд╣реАрдВ рдмрд┐рддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ред рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпреВрдЯреНрдпреВрдм рдкрд░ рдПрдХ рд▓рд┐рдВрдХ рдЕрдкрд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдирдпрд╛ рд╡реАрдбрд┐рдпреЛ рд╣реИ рдФрд░ рдХреНрд▓рд┐рдХ рдХреЛ рд╕рд╣реЗрдЬрддрд╛ рд╣реИред рдРрд╕реА "рдЧреНрд░реЗ" рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд╡рд╛ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреА рд╣реИ? рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ YouTube рдкреВрдЫрдирд╛ рд╣реИ? рд▓реЗрдХрд┐рди YouTube рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ (рдЕрдХреНрд╕рд░ рдПрдХ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) рд╕реЗ рднреА рднрд░рд╛ рд╣реИред рдЕрдХреНрд╕рд░ рд╡реАрдбрд┐рдпреЛ рд╕рд╛рдордЧреНрд░реА Youtube рд╕реЗрд╡рд╛ рд╕реЗ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╡реАрдбрд┐рдпреЛ рдХреЛ "рд╕реБрдирдиреЗ" рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рд╕рд┐рдЦрд╛рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ "рд╕рдордЭрдиреЗ" рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдорд┐рд▓рд╛ред

рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдирдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЬ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рджрд╕ рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ рдХрд╛ рдПрдХ рдХрд░реНрдордЪрд╛рд░реА рд╣реЛрдирд╛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИ, рдмрд╕ рджреЛ рджрд┐рди рдФрд░ рдереЛрдбрд╝рд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рдВрд╕рд╛рдзрдиред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди


рд╣рдорд╛рд░реЗ microservice, рдЪрд▓реЛ рдЗрд╕реЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХрд╣рддреЗ рд╣реИрдВ, рдЪрд╛рд╣рд┐рдП:

  • рдореАрдбрд┐рдпрд╛ рд╕реЗрд╡рд╛ рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ;
  • рдСрдбрд┐рдпреЛ рдЯреНрд░реИрдХ рдирд┐рдХрд╛рд▓реЗрдВ;
  • рдСрдбрд┐рдпреЛ рдЯреНрд░реИрдХ рдХреЛ рд╕реБрдиреЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рднрд╛рд╖рдг рджреЗрдВ;
  • 20 рдХреАрд╡рд░реНрдб рдЦреЛрдЬреЗрдВ;
  • рдкрд╛рда рд╕реЗ рдПрдХ рд╡рд╛рдХреНрдп рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдЬреЛ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рд░ рдХреЛ рдЕрдзрд┐рдХрддрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ;
  • рд╕рд╛рдордЧреНрд░реА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рд╕рднреА рдкрд░рд┐рдгрд╛рдо рднреЗрдЬреЗрдВ;

рд╣рдо рдкрд╛рдпрдерди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рддреИрдпрд╛рд░ рдПрдордПрд▓ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдПрдХ рдХрджрдо: рдСрдбрд┐рдпреЛ рдЯреВ рдЯреЗрдХреНрд╕реНрдЯред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

pip3 install wave numpy tensorflow youtube_dl ffmpeg-python deepspeech nltk networkx brew install ffmpeg wget 

рдЕрдЧрд▓рд╛, рдореЛрдЬрд╝рд┐рд▓рд╛ рд╕реЗ рднрд╛рд╖рдг рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЕрдирдкреИрдХ рдХрд░реЗрдВ - рдбреАрдкрд╕реНрдкреЗрд╕ред

 mkdir /Users/Volodymyr/Projects/deepspeech/ cd /Users/Volodymyr/Projects/deepspeech/ wget https://github.com/mozilla/DeepSpeech/releases/download/v0.3.0/deepspeech-0.3.0-models.tar.gz tar zxvf deepspeech-0.3.0-models.tar.gz 

рдореЛрдЬрд╝рд┐рд▓рд╛ рдЯреАрдо рдиреЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛, рдЬреЛ TensorFlow рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд╕рд╛рде рд▓рдВрдмреЗ рдСрдбрд┐рдпреЛ рдХреНрд▓рд┐рдк рдХреЛ рдкрд╛рда рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред TensorFlow рдЖрдкрдХреЛ рд╕реАрдкреАрдпреВ рдФрд░ рдЬреАрдкреАрдпреВ рджреЛрдиреЛрдВ рдкрд░ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рд╣рдорд╛рд░рд╛ рдХреЛрдб рд╕рд╛рдордЧреНрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдХреЗ рд╢реБрд░реВ рд╣реЛрдЧрд╛ред рдЕрджреНрднреБрдд youtube-dl рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИ рдЬреЛ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рдЗрд╕рдореЗрдВ рдЙрд╕рдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрдб рдереЛрдбрд╝рд╛ рд╕реАрдорд┐рдд рд╣реИ, рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреИрд╕реЗ рдлрд┐рд░ рд╕реЗ рднрд░рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХреА рдорджрдж рдХрд░реЗрдВрдЧреЗред
рдбреАрдкрд╕реНрдкреАрдЪ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдореЛрдиреЛ рдЯреНрд░реИрдХ рдФрд░ 16K рд╕реИрдВрдкрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдСрдбрд┐рдпреЛ рдлрд╛рдЗрд▓ рдЬрдорд╛ рдХрд░рдиреА рд╣реЛрдЧреАред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрдкрдиреА рдкреНрд░рд╛рдкреНрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

 _ = ffmpeg.input(youtube_id + '.wav').output(output_file_name, ac=1, t=crop_time, ar='16k').overwrite_output().run(capture_stdout=False) 

рдЙрд╕реА рдСрдкрд░реЗрд╢рди рдореЗрдВ, рд╣рдо рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ "t" рдкрд╛рд╕ рдХрд░рдХреЗ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдХреА рдЕрд╡рдзрд┐ рдХреЛ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдбреАрдк рд╕реНрдкреАрдЪ рдореЙрдбрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред

 deepspeech = Model(args.model, N_FEATURES, N_CONTEXT, args.alphabet, BEAM_WIDTH) 

рд╡реЗрд╡ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо np.array рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рдлреНрд░реЗрдо рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдбреАрдкрд╕реНрдкреЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЗрдирдкреБрдЯ рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рддреЗ рд╣реИрдВред

 fin = wave.open(file_name, 'rb') framerate_sample = fin.getframerate() if framerate_sample != 16000: print('Warning: original sample rate ({}) is different than 16kHz. Resampling might produce erratic speech recognition.'.format(framerate_sample), file=sys.stderr) fin.close() return else: audio = np.frombuffer(fin.readframes(fin.getnframes()), np.int16) audio_length = fin.getnframes() * (1/16000) fin.close() print('Running inference.', file=sys.stderr) inference_start = timer() result = deepspeech.stt(audio, framerate_sample) 

рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЖрдиреБрдкрд╛рддрд┐рдХ, рдЖрдкрдХреЛ рдкрд╛рда рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред

рджреЛ рдХрджрдо: "рдЕрд░реНрде" рдвреВрдБрдврдирд╛


рдкрд░рд┐рдгрд╛рдореА рдкрд╛рда рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╢рдмреНрджреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЧреНрд░рд╛рдлрд╝ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред рдпрд╣ рд╡рд┐рдзрд┐ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдкрд╣рд▓реЗ рд╣рдо рд╕рднреА "рдЕрджреНрд╡рд┐рддреАрдп" рд╢рдмреНрдж рдкрд╛рддреЗ рд╣реИрдВ, рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдпреЗ рд╣рдорд╛рд░реЗ рдЧреНрд░рд╛рдл рдХреЗ рдХреЛрдиреЗ рд╣реИрдВред рджреА рдЧрдИ рд▓рдВрдмрд╛рдИ рдХреЗ "рд╡рд┐рдВрдбреЛ" рдХреЗ рд╕рд╛рде рдкрд╛рда рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╢рдмреНрджреЛрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА рдкрд╛рддреЗ рд╣реИрдВ, рд╡реЗ рд╣рдорд╛рд░реЗ рдЧрдлрд╝ рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рд╣реЛрдВрдЧреЗред рдЧреНрд░рд╛рдл рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдлрд╝рд┐рд▓реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рднрд╛рд╖рдг рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рднрд╛рдЧ рдХреА рдХреЗрд╡рд▓ рд╢рд╛рдмреНрджрд┐рдХ рдЗрдХрд╛рдЗрдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреЗрд╡рд▓ рд╕рдВрдЬреНрдЮрд╛ рдФрд░ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдЙрди рд╕рдВрдмрдВрдзреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд┐рдирд╛рд░реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╕рдВрдЬреНрдЮрд╛ рдФрд░ рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмреАрдЪ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕реНрдХреЛрд░ рдХреЛ 1 рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд░реИрдВрдХрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд░реИрдВрдХрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдПрдХ "рд╡реЛрдЯ" рдпрд╛ "рд╕рд┐рдлрд╛рд░рд┐рд╢" рд╣реИред рдЬрдм рдПрдХ рд╢реАрд░реНрд╖ рджреВрд╕рд░реЗ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕ (рдХрдиреЗрдХреНрдЯреЗрдб) тАЛтАЛрд╢реАрд░реНрд╖ рдХреЗ рд▓рд┐рдП "рд╡реЛрдЯ" рдХрд░рддрд╛ рд╣реИред рдХрд┐рд╕реА рдЪреЛрдЯреА рдХреЗ рд▓рд┐рдП рдЬрд┐рддрдиреЗ рдЕрдзрд┐рдХ рд╡реЛрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдЙрд╕ рдЪреЛрдЯреА рдХрд╛ рдорд╣рддреНрд╡ рдЙрддрдирд╛ рд╣реА рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорддрджрд╛рди рд╢реАрд░реНрд╖ рдХрд╛ рдорд╣рддреНрд╡ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдорддрджрд╛рди рд╕реНрд╡рдпрдВ рдХрд┐рддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдФрд░ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд░реИрдВрдХрд┐рдВрдЧ рдореЙрдбрд▓ рджреНрд╡рд╛рд░рд╛ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╢реАрд░реНрд╖ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕реНрдХреЛрд░ рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдбрд╛рд▓реЗ рдЧрдП рд╡реЛрдЯреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЪреЛрдЯрд┐рдпреЛрдВ рдХреА рд░реЗрдЯрд┐рдВрдЧ рдЗрди рд╡реЛрдЯреЛрдВ рдХреЛ рдбрд╛рд▓рддреА рд╣реИред

рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЧреНрд░рд╛рдл рд╣реИ G = (V, E) рдЬреЛ рдХрд┐ рд╡рд░реНрдЯрд┐рд╕ V рдФрд░ рдХрд┐рдирд╛рд░реЛрдВ рдИ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╣реИред рджрд┐рдП рдЧрдП рд╡рд░реНрдЯреЗрдХреНрд╕ V рдХреЗ рд▓рд┐рдП, рд╡рд╣рд╛рдВ рд╡рд░реНрдЯрд┐рдХрд▓ E рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖ vi рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ (Vi) рдХреЛрдиреЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рд╣рд░ (Vi) рдХреЛрдиреЗ рдЬрд┐рдирдХреЗ рд╕рд╛рде рд╢реАрд░реНрд╖ v Vi рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡рд░реНрдЯ рд╡реА рдХреЗ рд╡рдЬрди рдХреЛ рд╕реВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

S рдмрдбрд╝рд╛(Vi рдмрдбрд╝рд╛)= рдмрдбрд╝рд╛(1тИТd рдмрдбрд╝рд╛)+dтИЧ sumj in(Vi) frac1 midout(V)j) midтИЧS big(Vj big)



рдЬрд╣рд╛рдВ d рдХреНрд╖реАрдгрди / рджрдорди рдХрд╛рд░рдХ рд╣реИ, 1 рд╕реЗ 0 рддрдХ рдорд╛рди рд▓реЗ рд░рд╣рд╛ рд╣реИред

рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдореЛрдЯреЗ рдЕрдиреБрдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рдЧреНрд░рд╛рдл рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЧреНрд░рд╛рдл рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорд╛рдирд┐рдд рдЕрдиреБрдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд░реНрдЯрд┐рдХрд▓ рдШрдЯрддреЗ рдХреНрд░рдо рдореЗрдВ рдХреНрд░рдордмрджреНрдз рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рд╕реВрдЪреА рдореЗрдВ рд╕рдмрд╕реЗ рдКрдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдиреЗ рд╣рдорд╛рд░реЗ рдЗрдЪреНрдЫрд┐рдд рдХреАрд╡рд░реНрдб рд╣реЛрдВрдЧреЗред

рдкрд╛рда рдореЗрдВ рд╕рдмрд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╡рд╛рдХреНрдп рд╡рд╛рдХреНрдп рдореЗрдВ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреА рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЗ рдФрд╕рдд рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рд╣рдо рд╕рднреА рдЕрдиреБрдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рдХреНрдп рдореЗрдВ рд╢рдмреНрджреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

 iMac:YoutubeSummarizer $ cd /Users/Volodymyr/Projects/YoutubeSummarizer ; env "PYTHONIOENCODING=UTF-8" "PYTHONUNBUFFERED=1" /usr/local/bin/python3 /Users/Volodymyr/.vscode/extensions/ms-python.python-2018.11.0/pythonFiles/experimental/ptvsd_launcher.py --default --client --host localhost --port 53730 /Users/Volodymyr/Projects/YoutubeSummarizer/summarizer.py --youtube-id yA-FCxFQNHg --model /Users/Volodymyr/Projects/deepspeech/models/output_graph.pb --alphabet /Users/Volodymyr/Projects/deepspeech/models/alphabet.txt --lm /Users/Volodymyr/Projects/deepspeech/models/lm.binary --trie /Users/Volodymyr/Projects/deepspeech/models/trie --crop-time 900 Done downloading, now converting ... ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers built with Apple LLVM version 10.0.0 (clang-1000.11.45.5) configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gpl --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-opencl --enable-videotoolbox libavutil 56. 22.100 / 56. 22.100 libavcodec 58. 35.100 / 58. 35.100 libavformat 58. 20.100 / 58. 20.100 libavdevice 58. 5.100 / 58. 5.100 libavfilter 7. 40.101 / 7. 40.101 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 3.100 / 5. 3.100 libswresample 3. 3.100 / 3. 3.100 libpostproc 55. 3.100 / 55. 3.100 Guessed Channel Layout for Input Stream #0.0 : stereo Input #0, wav, from 'yA-FCxFQNHg.wav': Metadata: encoder : Lavf58.20.100 Duration: 00:17:27.06, bitrate: 1536 kb/s Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, s16, 1536 kb/s Stream mapping: Stream #0:0 -> #0:0 (pcm_s16le (native) -> pcm_s16le (native)) Press [q] to stop, [?] for help Output #0, wav, to 'result-yA-FCxFQNHg.wav': Metadata: ISFT : Lavf58.20.100 Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 16000 Hz, mono, s16, 256 kb/s Metadata: encoder : Lavc58.35.100 pcm_s16le size= 28125kB time=00:15:00.00 bitrate= 256.0kbits/s speed=1.02e+03x video:0kB audio:28125kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000271% Loading model from file /Users/Volodymyr/Projects/deepspeech/models/output_graph.pb TensorFlow: v1.11.0-9-g97d851f04e DeepSpeech: unknown Warning: reading entire model file into memory. Transform model file into an mmapped graph to reduce heap usage. 2018-12-14 17:42:03.121170: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA Loaded model in 0.5s. Loading language model from files /Users/Volodymyr/Projects/deepspeech/models/lm.binary /Users/Volodymyr/Projects/deepspeech/models/trie Loaded language model in 3.17s. Running inference. Building top 20 keywords... {'communicate', 'government', 'repetition', 'terrorism', 'technology', 'thinteeneighty', 'incentive', 'ponsibility', 'experience', 'upsetting', 'democracy', 'infection', 'difference', 'evidesrisia', 'legislature', 'metriamatrei', 'believing', 'administration', 'antagethetruth', 'information', 'conspiracy'} Building summary sentence... intellectually antagethetruth administration thinteeneighty understanding metriamatrei shareholders evidesrisia recognizing ponsibility communicate information legislature abaddoryis technology difference conspiracy repetition experience government protecting categories mankyuses democracy campaigns primarily attackers terrorism believing happening infection seriously incentive upsetting testified fortunate questions president companies prominent actually platform massacre powerful building poblanas thinking supposed accounts murdered function unsolved perverse recently fighting opposite motional election children watching traction speaking measured nineteen repeated coverage imagined positive designed together countess greatest fourteen attacks publish brought through explain russian opinion winking somehow welcome trithis problem looking college gaining feoryhe talking ighting believe happens connect further working ational mistake diverse between ferring Inference took 76.729s for 900.000s audio file. 

рдкрд░рд┐рдгрд╛рдо


рдЖрдкрдХреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рддреАрди рдпрд╛ рдЪрд╛рд░ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрдЬ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ, рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреА рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдХреЛрдб рдореЗрд░реЗ рдЧрд┐рддреБрдм рднрдВрдбрд╛рд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ ред

Source: https://habr.com/ru/post/hi433532/


All Articles