voicoding.js 2.44 KB
const express = require('express');
const multer = require('multer');
const fs = require('fs');
const upload = multer();
const app = express(); 
const port = 5500;
app.use(express.static('Voicoding_web'));
app.use(express.static('./'));
async function testGoogleTextToSpeech(audioBuffer) {
    const speech = require('@google-cloud/speech');
    const client = new speech.SpeechClient();
    const audio = {
    content: audioBuffer.toString('base64'),
    };
    const encoding = 'LINEAR16';
    const sampleRateHertz = 48000;
    const languageCode = 'ko-KR';
    const speechContexts = [{
        phrases: [
        '$$OOV_CLASS_ALPHANUMERIC_SEQUENCE 는 $OOV_CLASS_ALPHANUMERIC_SEQUENCE',
        '$OOV_CLASS_ALPHANUMERIC_SEQUENCE 는 $OOV_CLASS_ALPHANUMERIC_SEQUENCE 보다 크다',
        '$OOV_CLASS_ALPHANUMERIC_SEQUENCE 는 $OOV_CLASS_ALPHANUMERIC_SEQUENCE 보다 작다',
        'for OOV_CLASS_ALPHA_SEQUENCE in range $OOV_CLASS_ALPHANUMERIC_SEQUENCE',
        'if',
        '이프',
        'else if',
        '엘스 이프',
        'else',
        '엘스',
        'while',
        '와일',
        '함수',
        '파라미터',
        'parameter',
        '변수 선언',
        '함수 선언',
        '반복문 선언',
        '조건문 선언'
        ],
        boost: 20
    }]

    const request = {
        audio: audio,
        config: {
            encoding: encoding,
            sampleRateHertz: sampleRateHertz,
            languageCode: languageCode,
            alternativeLanguageCodes: ['en-US'],
            speechContexts: speechContexts
        },
        interimResults: false, // If you want interim results, set this to true
    };
    const [response] = await client.recognize(request);
    const transcription = response.results
    .map(result => result.alternatives[0].transcript);
    return transcription;
}
app.post('/upload_sound', upload.any(), async (req, res) => {
    console.log("Getting text transcription..");
    let transcription = await testGoogleTextToSpeech(req.files[0].buffer);
    console.log("Text transcription: " + transcription);        
    res.status(200).send(transcription);
});
app.post('/ttp', upload.any(), async (req, res) => {
    console.log("Getting python code..");
    let python_code = req.body.transcript_data;
    console.log("Pyton code: " + python_code);        
    res.status(200).send(python_code);
});
app.listen(port, () => {
    console.log(`Express server listening on port: ${port}...`);
});