Files
deepspeech-demo/server.js
2023-08-01 14:20:25 +02:00

30 lines
1.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const fs = require('fs')
const path = require('path')
const http = require('http')
const express = require('express')
const serve = require('express-static')
const SocketIo = require('socket.io')
const ss = require('socket.io-stream')
const PORT = 3000
const app = express()
const server = http.Server(app)
const io = SocketIo(server)
module.exports = function (streamCb, myEmitter) {
// add socket io client libs from node_modules
app.get('/socket.io-stream.js', (req, res) => fs.createReadStream(require.resolve('socket.io-stream/socket.io-stream.js')).pipe(res))
app.get('/socket.io.js', (req, res) => fs.createReadStream(require.resolve('socket.io-client/dist/socket.io.js')).pipe(res))
app.get('/socket.io.js.map', (req, res) => fs.createReadStream(require.resolve('socket.io-client/dist/socket.io.js.map')).pipe(res))
app.get('/adapter.js', (req, res) => fs.createReadStream(require.resolve('webrtc-adapter/out/adapter.js')).pipe(res))
// static ressources
app.use(serve(path.join(__dirname, 'public')))
// configure socket.io stream interface (add callbacks for audio stream & return text)
io.on('connection', socket => {
ss(socket).on('audio', streamCb)
myEmitter.on('text', text => ss(socket).emit('news', ss.createStream(), text))
})
// start the server
server.listen(PORT, () => console.log('Server is running at http://localhost:%s - You´re good to go!', server.address().port))
}