천현우

changed looks like server

1 -const recorder = require('node-record-lpcm16'); 1 +const express = require('express');
2 +const multer = require('multer');
3 +const fs = require('fs');
4 +const upload = multer();
5 +const app = express();
6 +const port = 5501;
7 +app.use(express.static('./'));
8 +async function testGoogleTextToSpeech(audioBuffer) {
9 + const speech = require('@google-cloud/speech');
10 + const client = new speech.SpeechClient();
11 + const audio = {
12 + content: audioBuffer.toString('base64'),
13 + };
14 + const encoding = 'LINEAR16';
15 + const sampleRateHertz = 48000;
16 + const languageCode = 'ko-KR';
17 + const speechContexts = [{
18 + phrases: [
19 + '$$OOV_CLASS_ALPHANUMERIC_SEQUENCE 는 $OOV_CLASS_ALPHANUMERIC_SEQUENCE',
20 + '$OOV_CLASS_ALPHANUMERIC_SEQUENCE 는 $OOV_CLASS_ALPHANUMERIC_SEQUENCE 보다 크다',
21 + '$OOV_CLASS_ALPHANUMERIC_SEQUENCE 는 $OOV_CLASS_ALPHANUMERIC_SEQUENCE 보다 작다',
22 + 'for OOV_CLASS_ALPHA_SEQUENCE in range $OOV_CLASS_ALPHANUMERIC_SEQUENCE',
23 + 'if',
24 + '이프',
25 + 'else if',
26 + '엘스 이프',
27 + 'else',
28 + '엘스',
29 + 'while',
30 + '와일',
31 + '함수',
32 + '파라미터',
33 + 'parameter',
34 + '변수 선언',
35 + '함수 선언',
36 + '반복문 선언',
37 + '조건문 선언'
38 + ],
39 + boost: 20
40 + }]
2 41
3 -// Imports the Google Cloud client library 42 + const request = {
4 -const speech = require('@google-cloud/speech'); 43 + audio: audio,
5 - 44 + config: {
6 - 45 + encoding: encoding,
7 -// Creates a client 46 + sampleRateHertz: sampleRateHertz,
8 -const client = new speech.SpeechClient(); 47 + languageCode: languageCode,
9 - 48 + alternativeLanguageCodes: ['en-US'],
10 -/** 49 + speechContexts: speechContexts
11 - * TODO(developer): Uncomment the following lines before running the sample. 50 + },
12 - */ 51 + interimResults: false, // If you want interim results, set this to true
13 -const encoding = 'LINEAR16'; 52 + };
14 -const sampleRateHertz = 16000; 53 + const [response] = await client.recognize(request);
15 -const languageCode = 'ko-KR'; 54 + const transcription = response.results
16 -const speechContexts = [{ 55 + .map(result => result.alternatives[0].transcript)
17 - phrases: [ 56 + .join('\n');
18 - '$OOV_CLASS_ALPHA_SEQUENCE 는 $OOV_CLASS_ALPHA_SEQUENCE', '$OOV_CLASS_ALPHA_SEQUENCE 는 $OOV_CLASS_DIGIT_SEQUENCE', 57 + return transcription;
19 - '$OOV_CLASS_ALPHA_SEQUENCE 는 $OOV_CLASS_ALPHA_SEQUENCE 보다 크다', 58 +}
20 - '$OOV_CLASS_ALPHA_SEQUENCE 는 $OOV_CLASS_ALPHA_SEQUENCE 보다 작다', 59 +app.post('/upload_sound', upload.any(), async (req, res) => {
21 - '$OOV_CLASS_ALPHA_SEQUENCE 는 $OOV_CLASS_DIGIT_SEQUENCE 보다 크다', 60 + console.log("Getting text transcription..");
22 - '$OOV_CLASS_ALPHA_SEQUENCE 는 $OOV_CLASS_DIGIT_SEQUENCE 보다 작다', 61 + let transcription = await testGoogleTextToSpeech(req.files[0].buffer);
23 - 'for OOV_CLASS_ALPHA_SEQUENCE in range $OOV_CLASS_DIGIT_SEQUENCE', 62 + console.log("Text transcription: " + transcription);
24 - 'if', 63 + res.status(200).send(transcription);
25 - '이프', 64 +});
26 - 'else if', 65 +app.listen(port, () => {
27 - '엘스 이프', 66 + console.log(`Express server listening on port: ${port}...`);
28 - 'else', 67 +});
29 - '엘스',
30 - 'while',
31 - '와일',
32 - '함수',
33 - '파라미터',
34 - 'parameter',
35 - '변수 선언',
36 - '함수 선언',
37 - '반복문 선언',
38 - '조건문 선언'
39 - ],
40 - boost: 20
41 -}]
42 -
43 -const request = {
44 - config: {
45 - encoding: encoding,
46 - sampleRateHertz: sampleRateHertz,
47 - languageCode: languageCode,
48 - alternativeLanguageCodes: ['en-US'],
49 - speechContexts: speechContexts
50 - },
51 - interimResults: false, // If you want interim results, set this to true
52 -};
53 -
54 -// Create a recognize stream
55 -const recognizeStream = client
56 - .streamingRecognize(request)
57 - .on('error', console.error)
58 - .on('data', data =>
59 - process.stdout.write(
60 - data.results[0] && data.results[0].alternatives[0]
61 - ? `Transcription: ${data.results[0].alternatives[0].transcript}\n`
62 - : '\n\nReached transcription time limit, press Ctrl+C\n'
63 - )
64 - );
65 -
66 -// Start recording and send the microphone input to the Speech API.
67 -// Ensure SoX is installed, see https://www.npmjs.com/package/node-record-lpcm16#dependencies
68 -recorder
69 - .record({
70 - sampleRateHertz: sampleRateHertz,
71 - threshold: 0,
72 - // Other options, see https://www.npmjs.com/package/node-record-lpcm16#options
73 - verbose: false,
74 - recordProgram: 'sox', // Try also "arecord" or "sox"
75 - silence: '1.0',
76 - })
77 - .stream()
78 - .on('error', console.error)
79 - .pipe(recognizeStream);
80 -
81 -console.log('Listening, press Ctrl+C to stop.');
...\ No newline at end of file ...\ No newline at end of file
......