Showing
2 changed files
with
33 additions
and
29 deletions
... | @@ -61,6 +61,10 @@ | ... | @@ -61,6 +61,10 @@ |
61 | <workItem from="1574494473410" duration="2577000" /> | 61 | <workItem from="1574494473410" duration="2577000" /> |
62 | <workItem from="1574565997693" duration="30000" /> | 62 | <workItem from="1574565997693" duration="30000" /> |
63 | <workItem from="1574569996051" duration="559000" /> | 63 | <workItem from="1574569996051" duration="559000" /> |
64 | + <workItem from="1574579419218" duration="794000" /> | ||
65 | + <workItem from="1574662422550" duration="816000" /> | ||
66 | + <workItem from="1574669792266" duration="65000" /> | ||
67 | + <workItem from="1574670031852" duration="24000" /> | ||
64 | </task> | 68 | </task> |
65 | <servers /> | 69 | <servers /> |
66 | </component> | 70 | </component> | ... | ... |
... | @@ -98,69 +98,68 @@ function handleEvent(event) { | ... | @@ -98,69 +98,68 @@ function handleEvent(event) { |
98 | }) | 98 | }) |
99 | }) | 99 | }) |
100 | } | 100 | } |
101 | - | 101 | + else { |
102 | // 번역 기능 & 음성 기능 | 102 | // 번역 기능 & 음성 기능 |
103 | - return new Promise(function(resolve, reject) { | 103 | + return new Promise(function (resolve, reject) { |
104 | //언어 감지 option | 104 | //언어 감지 option |
105 | var detect_options = { | 105 | var detect_options = { |
106 | - url : languagedetect_api_url, | 106 | + url: languagedetect_api_url, |
107 | - form : {'query': event.message.text}, | 107 | + form: {'query': event.message.text}, |
108 | headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret} | 108 | headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret} |
109 | }; | 109 | }; |
110 | //papago 언어 감지 | 110 | //papago 언어 감지 |
111 | - request.post(detect_options,function(error,response,body){ | 111 | + request.post(detect_options, function (error, response, body) { |
112 | console.log(response.statusCode); | 112 | console.log(response.statusCode); |
113 | - if(!error && response.statusCode == 200){ | 113 | + if (!error && response.statusCode == 200) { |
114 | var detect_body = JSON.parse(response.body); | 114 | var detect_body = JSON.parse(response.body); |
115 | var source = ''; | 115 | var source = ''; |
116 | var target = ''; | 116 | var target = ''; |
117 | - var result = { type: 'text', text:''}; | 117 | + var result = {type: 'text', text: ''}; |
118 | //언어 감지가 제대로 됐는지 확인 | 118 | //언어 감지가 제대로 됐는지 확인 |
119 | console.log(detect_body.langCode); | 119 | console.log(detect_body.langCode); |
120 | - if(detect_options.form.query=='음성'){ | 120 | + if (detect_options.form.query == '음성') { |
121 | console.log('audio streaming'); | 121 | console.log('audio streaming'); |
122 | - if (!error && response.statusCode == 200){ | 122 | + if (!error && response.statusCode == 200) { |
123 | console.log(response.statusCode); | 123 | console.log(response.statusCode); |
124 | - for_audio_client.replyAudio(event.replyToken,{ | 124 | + for_audio_client.replyAudio(event.replyToken, { |
125 | "originalContentUrl": "https://panguin.ml/speech.m4a", | 125 | "originalContentUrl": "https://panguin.ml/speech.m4a", |
126 | "duration": 24000 | 126 | "duration": 24000 |
127 | }).then(resolve).catch(reject); | 127 | }).then(resolve).catch(reject); |
128 | } | 128 | } |
129 | } | 129 | } |
130 | //번역은 한국어->영어 / 영어->한국어만 지원 | 130 | //번역은 한국어->영어 / 영어->한국어만 지원 |
131 | - else if(detect_body.langCode == 'ko'||detect_body.langCode == 'en'){ | 131 | + else if (detect_body.langCode == 'ko' || detect_body.langCode == 'en') { |
132 | - source = detect_body.langCode == 'ko' ? 'ko':'en'; | 132 | + source = detect_body.langCode == 'ko' ? 'ko' : 'en'; |
133 | - target = source == 'ko' ? 'en':'ko'; | 133 | + target = source == 'ko' ? 'en' : 'ko'; |
134 | //papago 번역 option | 134 | //papago 번역 option |
135 | var options = { | 135 | var options = { |
136 | url: translate_api_url, | 136 | url: translate_api_url, |
137 | // 한국어(source : ko), 영어(target: en), 카톡에서 받는 메시지(text) | 137 | // 한국어(source : ko), 영어(target: en), 카톡에서 받는 메시지(text) |
138 | - form: {'source':source, 'target':target, 'text':event.message.text}, | 138 | + form: {'source': source, 'target': target, 'text': event.message.text}, |
139 | headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret} | 139 | headers: {'X-Naver-Client-Id': client_id, 'X-Naver-Client-Secret': client_secret} |
140 | }; | 140 | }; |
141 | 141 | ||
142 | // Naver Post API | 142 | // Naver Post API |
143 | - request.post(options, function(error, response, body){ | 143 | + request.post(options, function (error, response, body) { |
144 | // Translate API Sucess | 144 | // Translate API Sucess |
145 | - if(!error && response.statusCode == 200){ | 145 | + if (!error && response.statusCode == 200) { |
146 | // JSON | 146 | // JSON |
147 | var objBody = JSON.parse(response.body); | 147 | var objBody = JSON.parse(response.body); |
148 | result.text = objBody.message.result.translatedText; | 148 | result.text = objBody.message.result.translatedText; |
149 | //번역된 문자 audio로 저장 | 149 | //번역된 문자 audio로 저장 |
150 | - if(options.form.target=='ko'){ | 150 | + if (options.form.target == 'ko') { |
151 | - let audio_options={ | 151 | + var audio_options = { |
152 | 'Text': result.text, | 152 | 'Text': result.text, |
153 | 'OutputFormat': 'mp3', | 153 | 'OutputFormat': 'mp3', |
154 | - 'VoiceId':'Amy', | 154 | + 'VoiceId': 'Seoyeon', |
155 | - "LanguageCode":'ko-KR' | 155 | + "LanguageCode": 'ko-KR' |
156 | }; | 156 | }; |
157 | - } | 157 | + } else if (options.form.target == 'en') { |
158 | - else if(options.form.target=='en'){ | 158 | + var audio_options = { |
159 | - let audio_options={ | ||
160 | 'Text': result.text, | 159 | 'Text': result.text, |
161 | 'OutputFormat': 'mp3', | 160 | 'OutputFormat': 'mp3', |
162 | - 'VoiceId':'Amy', | 161 | + 'VoiceId': 'Kendra', |
163 | - "LanguageCode":'en-US' | 162 | + "LanguageCode": 'en-US' |
164 | }; | 163 | }; |
165 | } | 164 | } |
166 | Polly.synthesizeSpeech(audio_options, (err, data) => { | 165 | Polly.synthesizeSpeech(audio_options, (err, data) => { |
... | @@ -169,7 +168,7 @@ function handleEvent(event) { | ... | @@ -169,7 +168,7 @@ function handleEvent(event) { |
169 | throw err; | 168 | throw err; |
170 | } else if (data) { | 169 | } else if (data) { |
171 | if (data.AudioStream instanceof Buffer) { | 170 | if (data.AudioStream instanceof Buffer) { |
172 | - fs.writeFile("public/speech.m4a", data.AudioStream, function(err) { | 171 | + fs.writeFile("public/speech.m4a", data.AudioStream, function (err) { |
173 | if (err) { | 172 | if (err) { |
174 | return console.log(err); | 173 | return console.log(err); |
175 | } | 174 | } |
... | @@ -181,14 +180,14 @@ function handleEvent(event) { | ... | @@ -181,14 +180,14 @@ function handleEvent(event) { |
181 | // Message 잘 찍히는지 확인 | 180 | // Message 잘 찍히는지 확인 |
182 | console.log(result.text); | 181 | console.log(result.text); |
183 | //번역된 문장 보내기 | 182 | //번역된 문장 보내기 |
184 | - client.replyMessage(event.replyToken,result).then(resolve).catch(reject); | 183 | + client.replyMessage(event.replyToken, result).then(resolve).catch(reject); |
185 | } | 184 | } |
186 | }); | 185 | }); |
187 | } | 186 | } |
188 | // 메시지의 언어가 영어 또는 한국어가 아닐 경우 | 187 | // 메시지의 언어가 영어 또는 한국어가 아닐 경우 |
189 | - else{ | 188 | + else { |
190 | result.text = '언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 영어만 가능합니다.'; | 189 | result.text = '언어를 감지할 수 없습니다. \n 번역 언어는 한글 또는 영어만 가능합니다.'; |
191 | - client.replyMessage(event.replyToken,result).then(resolve).catch(reject); | 190 | + client.replyMessage(event.replyToken, result).then(resolve).catch(reject); |
192 | } | 191 | } |
193 | 192 | ||
194 | } | 193 | } |
... | @@ -196,6 +195,7 @@ function handleEvent(event) { | ... | @@ -196,6 +195,7 @@ function handleEvent(event) { |
196 | }); | 195 | }); |
197 | 196 | ||
198 | }); | 197 | }); |
198 | + } | ||
199 | } | 199 | } |
200 | 200 | ||
201 | app.listen(80, function () { | 201 | app.listen(80, function () { | ... | ... |
-
Please register or login to post a comment