Skip to content

MSP-CognitiveAPI/Section02

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

16 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Section02

Cog.io Section02

##Cogio YoutubeScript project Cogio ์œ ํŠœ๋ธŒ ์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ์ ํŠธ๋Š” YoutubeExtractor dll๊ณผ Azure Cognitive service๋ฅผ ์ด์šฉํ•œ ํ”„๋กœ์ ํŠธ ์ž…๋‹ˆ๋‹ค.

##YoutubeExtractor

  • Overview YoutubeExtractor๋Š” .NET์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋ฉฐ, C#์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ๊ณ  ์œ ํŠœ๋ธŒ์—์„œ ๋น„๋””์˜ค๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๊ณ  ์˜ค๋””์˜ค ํŠธ๋ž™์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (ํ˜„์žฌ๋Š” ํ”Œ๋ž˜์‹œ ๋น„๋””์˜ค์—์„œ๋งŒ ์˜ค๋””์˜ค ์ถ”์ถœ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.)

alt tag

##Azure Cognitive service

Bing Speech API

alt tag

Bing speech API๋Š” ์Œ์„ฑ์„ ํ…์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๋‹ค์‹œ ์Œ์„ฑ์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์˜๋„๋ฅผ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

  • ์Œ์„ฑ ์ธ์‹ ํŒŒ์ผ์˜ ์˜ค๋””์˜ค๋‚˜ ๋งˆ์ดํฌ ๋˜๋Š” ๊ธฐํƒ€ ์˜ค๋””์˜ค ์†Œ์Šค์˜ ๋ผ์ด๋ธŒ ์Œ์„ฑ์„ ํฌํ•จํ•œ ์Œ์„ฑ ์˜ค๋””์˜ค๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ…์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์˜ค๋””์˜ค๊ฐ€ ์„œ๋ฒ„๋กœ ์ „์†ก๋  ๋•Œ ๋ถ€๋ถ„ ์ธ์‹ ๊ฒฐ๊ณผ๋„ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

  • ์Œ์„ฑ ์˜๋„ ์ธ์‹ ์Œ์„ฑ ์˜ค๋””์˜ค๋ฅผ ์ž‘์—…์„ ์œ ๋„ํ•˜๋Š” ์˜๋„๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์Œ์„ฑ ์˜๋„ ์ธ์‹์€ย ์–ธ์–ด ์ธ์‹ ์ธํ…”๋ฆฌ์ „ํŠธ ์„œ๋น„์Šค ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์Œ์„ฑ์„ ํ…์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋งํ•˜๋Š” ์‚ฌ๋žŒ์˜ ์˜๋„๋ฅผ ์†์‰ฝ๊ฒŒ ํŒŒ์•…ํ•˜์—ฌ ์•ฑ ๋‚ด์—์„œ โ€œ์•Œ๋žŒ ์„ค์ •โ€๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.

  • ํ…์ŠคํŠธ ์Œ์„ฑ ๋ณ€ํ™˜ ํ…์ŠคํŠธ๋ฅผ ์Œ์„ฑ ์˜ค๋””์˜ค๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ค์‹œ โ€œ๋งโ€ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ์ด API๊ฐ€ ์•ฑ์—์„œ ์ƒ์„ฑ๋œ ํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์žฌ์ƒ ๊ฐ€๋Šฅํ•œ ์˜ค๋””์˜ค๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

###Translator speech API

alt tag

Microsoft Translator Speech API๋Š” ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ย automatic translation(์ž๋™ ๋ฒˆ์—ญ) ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ด API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ์„œ๋น„์Šค์— ์ข…๋‹จ ๊ฐ„ ์‹ค์‹œ๊ฐ„ ์Œ์„ฑ ๋ฒˆ์—ญ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋„๋‹ฌ ๋ฒ”์œ„ ํ™•์žฅ ๋ชจ๋ฐ”์ผ, ๋ฐ์Šคํฌํ†ฑ ๋ฐ ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์—์„œ ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์ž๋™ ์Œ์„ฑ ๋ฒˆ์—ญ ์„œ๋น„์Šค(๊ธฐ๊ณ„ ๋ฒˆ์—ญ์ด๋ผ๊ณ ๋„ ํ•จ)์ธย Translator Speech API์˜ ๊ฐœ๋ฐฉํ˜• REST ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด 9๊ฐœ ์–ธ์–ด๋กœ ๋ฒˆ์—ญ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‹ค์ œ ๋Œ€ํ™” ๊ธฐ๋ก ๋ฐ ๋ฒˆ์—ญ ์‹ค์ œ ๋Œ€ํ™”์˜ ๋ฒˆ์—ญ์— ์ตœ์ ํ™”๋œ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์Œ์„ฑ ๋ฒˆ์—ญ์„ ์•ฑ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ ์กฐ์ • ๊ณ ์œ ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋”ฐ๋ผ API์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ถœ๋ ฅ(๋งํ•  ๋•Œ ๋ถ€๋ถ„์ ์ธ ๊ธฐ๋ก, ๋ถ€๋ถ„์ ์ธ ํ…์ŠคํŠธ ๋ฒˆ์—ญ, ์ตœ์ข… ๊ธฐ๋ก, ์ตœ์ข… ํ…์ŠคํŠธ ๋ฒˆ์—ญ ๋˜๋Š” ์˜ค๋””์˜ค ํ…์ŠคํŠธ ์Œ์„ฑ ๋ณ€ํ™˜ ๋ฒˆ์—ญ)์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

##Cogio YoutubeScript project Azure Cognitive ๋ถ€๋ถ„

###1. ์ดˆ๊ธฐ ์…‹ํŒ… alt tag

  • Azure Cognitive Speech api๋ฅผ ์“ฐ๊ธฐ ์œ„ํ•ด์„œ๋Š” DataRecognitionClient ์˜ ๋ณ€์ˆ˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ํ™”๋ฉด์—์„œ๋Š” m_dataClient๋ผ๋Š” ๋ณ€์ˆ˜๋กœ ์ด๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.
  • speech api์—์„œ ํ™”์ž์˜ ์Œ์„ฑ์„ ์ธ์‹ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ 2๊ฐ€์ง€๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ํ™”์ž์˜ ๋งˆ์ดํฌ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ…์ŠคํŠธ๋กœ ๋ณ€ ํ™˜ํ•˜๋Š” ๊ธฐ์ˆ ๊ณผ ๊ธฐ์กด ์Œ์„ฑํŒŒ์ผ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ…์ŠคํŠธ๋กœ ๋ฐ”๊พธ๋Š” ๊ธฐ์ˆ ์„ ๋“ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. YoutubeScript์—์„œ๋Š” ๊ธฐ์กด ์Œ์„ฑํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์• ์ €์— ๋ณด๋‚ด์„œ ์ธ์‹ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค. SpeechRecognitionMode ์—์„œ longDictation๊ธฐ๋Šฅ์€ ๊ธด ์Œ์„ฑ ํŒŒ์ผ์„ ์• ์ €๋กœ ๋ณด๋‚ด์ฃผ๋Š” ๋งค์„œ๋“œ๋ฅผ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • DefaultLocale์€ ์• ์ €์„œ๋ฒ„๋กœ ์Œ์„ฑํŒŒ์ผ์„ ๋ณด๋‚ผ๋•Œ ์–ด๋–ค ์–ธ์–ด๋กœ ๋ฐ”๊ฟ€๊ฒƒ์ธ์ง€ ๊ณ ๋ฅด๋Š” ์„ ํƒ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
  • primarykey๋Š” ์• ์ €์„œ๋ฒ„์—์„œ ํ• ๋‹นํ•˜๋Š” accesstoken์ž…๋‹ˆ๋‹ค.
  • translate_SubscriptionKey๋Š” ์• ์ €์„œ๋ฒ„์—์„œ translator api๋ฅผ ์“ธ๋•Œ ์“ฐ๋Š” ํ† ํฐํ‚ค์ž…๋‹ˆ๋‹ค.

###2. ๋‘๋ฒˆ์งธ ์ดˆ๊ธฐ ์…‹ํŒ… ์ƒ์„ฑ์ž alt tag

  • DataRecognitionClient ์—์„œ ๋ณ€์ˆ˜๋กœ ๋ฐ›์€ m_dataClient๋ฅผ ํ†ตํ•ด ์• ์ €์™€ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด Speech RecognitionServiceFactory.CreateDataClient ๋ฉ”์„œ๋“œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” 3๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ–๋Š”๋ฐ ์•ž์„œ ์ง€์ •ํ•œ longDictation์„ ์ง€์ •ํ•œ m_recoMode, DefaultLocale์—์„œ ์ง€์ •ํ•œ ์–ธ์–ด , primarykey๊ฐ€ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.

  • Speech API๋ฅผ ์ด์šฉํ•  ๋•Œ๋Š” 3๊ฐœ์˜ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” OnResponseReceived ๊ณผ OnPartialResponseReceived ์™€ OnConversationErrorํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

###3. Error ํ—จ๋“ค๋Ÿฌ alt tag

  • ์ด ํ—จ๋“ค๋Ÿฌ๋Š” ์• ์ €์™€ ํด๋ผ์ด์–ธํŠธ์‚ฌ์ด์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์‹œ ์—๋Ÿฌ๋ฅผ ๋„์›Œ์ฃผ๋Š” ์ฐฝ์ž…๋‹ˆ๋‹ค.
  • ์ฃผ๋กœ ํ‚ค๊ฐ€ ๋งŒ๋ฃŒ๋˜๊ฑฐ๋‚˜ request๊ฐ€ ์ž˜๋ชป ๋ ๋•Œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

###4. PartialResponseReceived ํ—จ๋“ค๋Ÿฌ alt tag

  • ์ด ํ—จ๋“ค๋Ÿฌ๋Š” ์• ์ €์™€ ๋ถ€๋ถ„ ๋ถ€๋ถ„ request์™€ response๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ์ƒ๊ธฐ๋Š” ๊ฐ’๋“ค์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„์œผ๋กœ Speech api๊ฐ€ ๋ถ„์„ํ•˜๋Š” ๋Œ€๋กœ response๊ฐ’์„ e.PartialResult๋ผ๋Š” ๋ณ€์ˆ˜์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

###5. OnResponseReceived ํ—จ๋“ค๋Ÿฌ alt tag

  • ์ด ํ—จ๋“ค๋Ÿฌ์—๋Š” PartialResponseReceived์—์„œ ๋ฐ›์€ response๊ฐ’์ค‘ ๊ฐ€์žฅ ์ •ํ™•ํ•œ ๊ฐ’๋“ค์„ ์„ ๋ณ„ํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ responseํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • response๊ฐ’๋“ค์„ ๋ชจ์•„์„œ System.IO.StreamWriter๋ฅผ ํ†ตํ•ด text ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.

###6. sendAudio ํ—จ๋“ค๋Ÿฌ alt tag

  • sendAudio ๋ฉ”์„œ๋“œ๋Š” fileStream์„ ํ†ตํ•ด wavํŒŒ์ผ์„ ์• ์ €์„œ๋ฒ„์— ์ „์†กํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • wav ํŒŒ์ผ์™ธ์— ๋‹ค๋ฅธ ํ˜•์‹์„ ์˜ฌ๋ฆฌ๋ ค๋ฉด ๊ทธ์— ๋งž๋Š” ํ˜•์‹์— ๋Œ€ํ•œ ์„ค์ •์„ ๊ฐ–์ถฐ์„œ ๋ณด๋‚ด์•ผํ•ฉ๋‹ˆ๋‹ค. YoutubeScript์—์„œ๋Š” ์ด ๊ณผ์ •์„ ์ƒ๋žตํ•˜๊ณ  wavํŒŒ์ผ๋กœ ์˜ฌ๋ฆฌ๋Š” ์ž‘์—…์„ ํ•ฉ๋‹ˆ๋‹ค.

###7. YoutubeExtractor .dll alt tag

๊ด€๋ จ ๋™์˜์ƒ ๋งํฌ

  • Youtube์—์„œ ๋™์˜์ƒ์„ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ด ํ”„๋กœ๊ทธ๋žจ์—์„  YoutubeExtractor.dll์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ์ถ”์ถœํ•  ๋™์˜์ƒ์˜ ์ฃผ์†Œ๋ฅผ ๋ฐ›๋Š” ์ž‘์—…์„ DownloadUrlResolver.GetDownloadUrl์—์„œ ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค.
  • videoํŒŒ์ผ์„ ๋ฐ›์„๋•Œ ๋น„๋””์˜ค ํ˜•์‹์„ mp4๋กœ ํ•ด์ƒ๋„๋Š” 240,360,480p๋กœ ํ•ด์ƒ๋„ ์„ ํƒ์ฐฝ์—์„œ ์„ ํƒํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • VideoDownloader์—์„œ ์•ž์„œ ์„ค์ •ํ•œ ๋น„๋””์˜ค ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด mp4๋กœ ๋™์˜์ƒ์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

###8. Bing Translator ์…‹ํŒ… alt tag

๊ด€๋ จ ๋™์˜์ƒ ๋งํฌ

  • bing Translator๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„  request header์–‘์‹์„ ๋งž์ถฐ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์• ์ € ํ™ˆํŽ˜์ด์ง€์—์„œ ADMAccessToken์„ ์ œ๊ณต๋ฐ›๊ณ  ์ด๋ฅผ headerValue์— "Bearer" ์™€ admToken.access_token์œผ๋กœ ๋„ฃ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

###9. Bing Translator TransformTextMethod alt tag

  • bing translator์—์„œ ๋ฒˆ์—ญ์„ ํ•˜๊ธฐ์œ„ํ•ด์„  httpWebRequest๋ฅผ ํ†ตํ•œ ์„œ๋ฒ„ํ†ต์‹ ์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.
  • uri ๋ณ€์ˆ˜์— ์ €์žฅ๋œ text์™€ ๋ฐ”๊พธ๊ณ  ์‹ถ์€ ์–ธ์–ด๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • httpWebRequest header์— ์•ž์„œ ์„ค์ •ํ•œ ํ† ํฐ์„ ์‚ฝ์ž…ํ•˜๊ณ  ์„œ๋ฒ„์— ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
  • ์„œ๋ฒ„์—์„œ ๋ฐ›์€ response ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€๋ณธ_๋ฒˆ์—ญ ํ…์ŠคํŠธ ํŒŒ์ผ์— ์ €์žฅํ•˜๋ฉด ์™„์„ฑ!

Releases

No releases published

Packages

No packages published