๋ณธ ์‹œ๋ฆฌ์ฆˆ๋Š” Watson STT์˜ ์ธ์‹๋ฅ ์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ํŠธ๋ ˆ์ด๋‹ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” ์‹œ๋ฆฌ์ฆˆ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๊ฐ ์‹œ๋ฆฌ์ฆˆ์˜ ์†Œ์Šค๋Š” https://github.com/blbird/STT ์—์„œ ํ™•์ธํ•˜์‹ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Watson STT ์Œ์„ฑ ๋ฐ์ดํ„ฐ ํŠธ๋ ˆ์ด๋‹

์ด๋ฒˆ์—๋Š” ์‹œ๋ฆฌ์ฆˆ์˜ ๋งˆ์ง€๋ง‰์œผ๋กœ Watson STT์˜ ์Œ์„ฑ ๋ฐ์ดํ„ฐ ํŠธ๋ ˆ์ด๋‹์— ๋Œ€ํ•ด ์•Œ์•„ ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Watson STT์˜ ์Œ์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•œ ํŠธ๋ ˆ์ด๋‹์€ ์‹œ๋ฆฌ์ฆˆ์˜ ๋‘๋ฒˆ์งธ์—์„œ ์•Œ์•„๋ณธ ํ…์ŠคํŠธ๋ฅผ ์ด์šฉํ•œ ํŠธ๋ ˆ์ด๋‹์„ ๋ณด์ถฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํŠธ๋ ˆ์ด๋‹ํ•œ ํ…์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์Œ์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ข€๋” ์ •ํ™•๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

1. ์Œ์„ฑ ๋ฐ์ดํ„ฐ ํŠธ๋ ˆ์ด๋‹ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ (acoustic.js)M/h5>
  • NodeJS์˜ ๊ฒฝ์šฐ v3.0.3 ์ดํ›„ ๋ถ€ํ„ฐ ์ง€์›์„ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์‹œ๋ ค๋ฉด package.json์—์„œ 3.0.3 ์ดํ›„ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์Œ์„ฑ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ํŠธ๋ ˆ์ด๋‹์€ createAcousticModel() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ acoustic ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜๊ณ , ์ƒ์„ฑ๋œ ๋ชจ๋ธ์— addAudio() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. addAudio() ํ•จ์ˆ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์ž…๋ ฅ๊ฐ’์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    • customization_id: ์ƒ์„ฑํ•œ acoustic ๋ชจ๋ธ id
    • audio_name: ์ƒ์„ฑํ•œ ์Œ์„ฑ ๋ฐ์ดํ„ฐ ์ €์žฅ์„ ์œ„ํ•œ ์ด๋ฆ„
    • content_type: ์Œ์„ฑ ๋ฐ์ดํ„ฐ์˜ ํฌ๋ฉง์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํƒ€์ž…์€ application/zip, application/gzip, audio/basic, audio/flac, audio/l16, audio/mp3, audio/mpeg, audio/mulaw, audio/ogg, audio/ogg;codecs=opus, audio/ogg;codecs=vorbis, audio/wav, audio/webm, audio/webm;codecs=opus, audio/webm;codecs=vorbis ์ž…๋‹ˆ๋‹ค.
    • contained_content_type: ์—ฌ๋Ÿฌ๊ฐœ์˜ ํŒŒ์ผ์„ ๋™์‹œ์— ํŠธ๋ ˆ์ด๋‹ ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” zip์ด๋‚˜ gzip์„ ์ด์šฉํ•˜์—ฌ ์••์ถ•ํ•˜์—ฌ ํ•ด๋‹น zip๊ณผ gzip ํŒŒ์ผ์„ ์ด์šฉํ•˜์—ฌ ํŠธ๋ ˆ์ด๋‹ ์‹œํ‚ฌ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ content-type์€ application/zip์ด๋‚˜ application/gzip ์„ ๋ช…์‹œํ•˜์…”์•ผ ํ•˜๊ณ , ์••์ถ•๋œ ์Œ์„ฑ์— ๋Œ€ํ•œ ํฌ๋ฉง์€ contained_content_type์— ๋ช…์‹œํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
    • allow_overwrite: ๊ฐ™์€ ์ด๋ฆ„์˜ ์Œ์„ฑ customization model์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฎ์–ด ์ €์žฅํ• ์ง€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
    • audio_resource: ์˜ค๋””์˜ค ํŒŒ์ผ ์ŠคํŠธ๋ฆผ์„ ์ž…๋ ฅํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํŠธ๋ ˆ์ด๋‹์„ ์œ„ํ•œ ์Œ์„ฑ ํŒŒ์ผ์€ ์ตœ์†Œ 10๋ถ„, ์ตœ๋Œ€ 3000๋ถ„์˜ ์žฌ์ƒ ์‹œ๊ฐ„์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์Œ์„ฑ์— ๋Œ€ํ•œ ํŠธ๋ ˆ์ด๋‹๋„ addAudioํ•จ์ˆ˜ ํ˜ธ์ถœ ํ›„ trainAcousticModel() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ํŠธ๋ ˆ์ด๋‹์„ ํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ํŠธ๋ ˆ์ด๋‹ ์‹œ๊ฐ„์€ ์ž…๋ ฅํ•˜์‹  ์˜ค๋””์˜ค ์žฌ์ƒ ์‹œ๊ฐ„์˜ ๋‘๋ฐฐ ์ •๋„ ๊ฑธ๋ฆฐ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
2. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰

– npm install
– node acoustic add

๊ฒฐ๋ก 

์ง€๊ธˆ๊นŒ์ง€ NodeJS๋ฅผ ์ด์šฉํ•œ Watson STT ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• ๋ฐ, ํŠธ๋ ˆ์ด๋‹ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ Watson STT์˜ ํŠธ๋ ˆ์ด๋‹์„ ์ด์šฉํ•˜๋ฉด ํŠน์ • ๋ถ„์•ผ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์žฅ ๋ฐ ๋‹จ์–ด์— ๋Œ€ํ•ด ํŠธ๋ ˆ์ด๋‹์„ ํ•  ์ˆ˜ ์žˆ์–ด์„œ, ํŠน์ • ๋ถ„์•ผ๋ฅผ ์œ„ํ•œ ๋” ์ •ํ™•ํ•œ ์Œ์„ฑ ์ธ์‹ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

ํ† ๋ก  ์ฐธ๊ฐ€

์ด๋ฉ”์ผ์€ ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ์ž…๋ ฅ์ฐฝ์€ * ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.