mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
Started google cloud tests
This commit is contained in:
@@ -158,8 +158,6 @@ export class AudioManager {
|
|||||||
this.#devices = devices;
|
this.#devices = devices;
|
||||||
AudioManagerDevicesChangedEvent.dispatch(devices);
|
AudioManagerDevicesChangedEvent.dispatch(devices);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.#startSpeechRecognition();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
stop() {
|
stop() {
|
||||||
@@ -330,30 +328,4 @@ export class AudioManager {
|
|||||||
|
|
||||||
if (this.#socket?.readyState == 1) this.#socket?.send(new Uint8Array([AudioMessageType.settings, ...Buffer.from(JSON.stringify(message), "utf-8")]));
|
if (this.#socket?.readyState == 1) this.#socket?.send(new Uint8Array([AudioMessageType.settings, ...Buffer.from(JSON.stringify(message), "utf-8")]));
|
||||||
}
|
}
|
||||||
|
|
||||||
#startSpeechRecognition() {
|
|
||||||
const grammar =
|
|
||||||
"#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghostwhite | gold | goldenrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;";
|
|
||||||
//@ts-ignore
|
|
||||||
const recognition = new window.webkitSpeechRecognition();
|
|
||||||
//@ts-ignore
|
|
||||||
const speechRecognitionList = new window.webkitSpeechGrammarList();
|
|
||||||
speechRecognitionList.addFromString(grammar, 1);
|
|
||||||
recognition.grammars = speechRecognitionList;
|
|
||||||
recognition.continuous = true;
|
|
||||||
recognition.lang = "en-US";
|
|
||||||
recognition.interimResults = true;
|
|
||||||
//recognition.maxAlternatives = 1;
|
|
||||||
|
|
||||||
const diagnostic = document.querySelector(".output");
|
|
||||||
const bg = document.querySelector("html");
|
|
||||||
recognition.start();
|
|
||||||
|
|
||||||
|
|
||||||
recognition.onresult = (event) => {
|
|
||||||
const color = event.results[0][0].transcript;
|
|
||||||
diagnostic.textContent = `Result received: ${color}`;
|
|
||||||
bg.style.backgroundColor = color;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ export class TextToSpeechSource extends AudioSource {
|
|||||||
body: JSON.stringify({ text }), // Send the data in JSON format
|
body: JSON.stringify({ text }), // Send the data in JSON format
|
||||||
};
|
};
|
||||||
|
|
||||||
fetch(getApp().getExpressAddress() + `/api/texttospeech/generate`, requestOptions)
|
fetch(getApp().getExpressAddress() + `/api/speech/generate`, requestOptions)
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
if (response.status === 200) {
|
if (response.status === 200) {
|
||||||
console.log(`Text to speech generate correctly`);
|
console.log(`Text to speech generate correctly`);
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@google-cloud/speech": "^6.7.0",
|
||||||
"appjs": "^0.0.20",
|
"appjs": "^0.0.20",
|
||||||
"appjs-win32": "^0.0.19",
|
"appjs-win32": "^0.0.19",
|
||||||
"body-parser": "^1.20.2",
|
"body-parser": "^1.20.2",
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ module.exports = function (configLocation, viteProxy) {
|
|||||||
"databases"
|
"databases"
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
const textToSpeechRouter = require("./routes/api/texttospeech")();
|
const speechRouter = require("./routes/api/speech")();
|
||||||
|
|
||||||
/* Load the config and create the express app */
|
/* Load the config and create the express app */
|
||||||
let config = {};
|
let config = {};
|
||||||
@@ -76,12 +76,12 @@ module.exports = function (configLocation, viteProxy) {
|
|||||||
app.use("/api/airbases", airbasesRouter);
|
app.use("/api/airbases", airbasesRouter);
|
||||||
app.use("/api/elevation", elevationRouter);
|
app.use("/api/elevation", elevationRouter);
|
||||||
app.use("/api/databases", databasesRouter);
|
app.use("/api/databases", databasesRouter);
|
||||||
app.use("/api/texttospeech", textToSpeechRouter);
|
app.use("/api/speech", speechRouter);
|
||||||
app.use("/resources", resourcesRouter);
|
app.use("/resources", resourcesRouter);
|
||||||
app.use("/express/api/airbases", airbasesRouter);
|
app.use("/express/api/airbases", airbasesRouter);
|
||||||
app.use("/express/api/elevation", elevationRouter);
|
app.use("/express/api/elevation", elevationRouter);
|
||||||
app.use("/express/api/databases", databasesRouter);
|
app.use("/express/api/databases", databasesRouter);
|
||||||
app.use("/express/api/texttospeech", textToSpeechRouter);
|
app.use("/express/api/speech", speechRouter);
|
||||||
app.use("/express/resources", resourcesRouter);
|
app.use("/express/resources", resourcesRouter);
|
||||||
|
|
||||||
/* Set default index */
|
/* Set default index */
|
||||||
|
|||||||
47
frontend/server/src/routes/api/speech.ts
Normal file
47
frontend/server/src/routes/api/speech.ts
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
import express = require("express");
|
||||||
|
import fs = require("fs");
|
||||||
|
var gtts = require("node-gtts")("en");
|
||||||
|
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
module.exports = function () {
|
||||||
|
router.put("/generate", (req, res, next) => {
|
||||||
|
res.set({ "Content-Type": "audio/mpeg" });
|
||||||
|
gtts.stream(req.body.text).pipe(res);
|
||||||
|
});
|
||||||
|
|
||||||
|
router.get("/recognize", (req, res, next) => {
|
||||||
|
//// Imports the Google Cloud client library
|
||||||
|
//const speech = require("@google-cloud/speech");
|
||||||
|
//
|
||||||
|
//// Creates a client
|
||||||
|
//const client = new speech.SpeechClient();
|
||||||
|
//
|
||||||
|
//// The path to the remote LINEAR16 file
|
||||||
|
//const gcsUri = "gs://cloud-samples-data/speech/brooklyn_bridge.raw";
|
||||||
|
//
|
||||||
|
//// The audio file's encoding, sample rate in hertz, and BCP-47 language code
|
||||||
|
//const audio = {
|
||||||
|
// uri: gcsUri,
|
||||||
|
//};
|
||||||
|
//const config = {
|
||||||
|
// encoding: "LINEAR16",
|
||||||
|
// sampleRateHertz: 16000,
|
||||||
|
// languageCode: "en-US",
|
||||||
|
//};
|
||||||
|
//const request = {
|
||||||
|
// audio: audio,
|
||||||
|
// config: config,
|
||||||
|
//};
|
||||||
|
//
|
||||||
|
//// Detects speech in the audio file
|
||||||
|
//client.recognize(request).then((response) => {
|
||||||
|
// const transcription = response.results
|
||||||
|
// .map((result) => result.alternatives[0].transcript)
|
||||||
|
// .join("\n");
|
||||||
|
// console.log(`Transcription: ${transcription}`);
|
||||||
|
//});
|
||||||
|
});
|
||||||
|
|
||||||
|
return router;
|
||||||
|
};
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
import express = require('express');
|
|
||||||
import fs = require('fs');
|
|
||||||
var gtts = require('node-gtts')('en');
|
|
||||||
|
|
||||||
const router = express.Router();
|
|
||||||
|
|
||||||
module.exports = function () {
|
|
||||||
router.put( "/generate", ( req, res, next ) => {
|
|
||||||
res.set({'Content-Type': 'audio/mpeg'});
|
|
||||||
gtts.stream(req.body.text).pipe(res);
|
|
||||||
});
|
|
||||||
|
|
||||||
return router;
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user