Ich versuche, die IBM Watson Text to Speech API über eine Webseite zu verwenden. Auf der Webseite habe ich ein Formular, das den Satz oder das Wort, den der Benutzer gelesen haben möchte, und einen Button "SPEAK!" das schließt und liest die Formulareingabe. Mein Problem ist, dass wenn ich in die Konsole schaue, um sicherzustellen, dass alles reibungslos läuft, sehe ich, dass meine Audiodatei nicht gefunden wird.404 Fehler bei der Verwendung von Jade/Pug zur Ausgabe von Audio auf einer Webseite
App.js - das ist der Code, der an die API anschließt und dann den synthetisierten Code an "audioFiles/Output.ogg" sendet, wo sie aufgerufen werden können.
var input;
app.get("/speech", function(req, res, next) {
input = req.query.speech;
const TextToSpeechV1 = require('watson-developer-cloud/text-to-speech/v1');
const fs = require('file-system');
if(input) {
var intentValNumber = input.length;
}
console.log(intentValNumber);
if (intentValNumber > 0) {
const text_to_speech = new TextToSpeechV1({
url: "URL is here",
username: 'UserName is here',
password: 'PassWord is here',
version_date: TextToSpeechV1.VERSION_DATE_2017_04_26
});
var params = {
text: input,
voice: 'en-US_MichaelVoice',
accept: 'audio/ogg'
};
console.log(input);
// Pipe the synthesized text to a file.
text_to_speech.synthesize(params).on('error', function(error) {
console.log('Error:', error);
}).pipe(fs.createWriteStream('audioFiles/output.ogg'));
};
next();
});
rede.pug - hier sollten das Formular und das Audio ausgeführt werden.
extends layout
block content
.main.container.row
.col-md-6.col-md-offset-3
h1.display-4.m-b-2 Magic Reading!
form(method="GET" action="/speech")
div.form-group
label(for='speech') Type something to be spoken:
input#speech.form-control(type='text', placeholder='Type something to be read' name='speech')
button.btn.btn-primary(type='submit') SPEAK!
audio(controls='', autoplay='')
source(src='../audioFiles/output.ogg', type='audio/ogg')
Spezifische Fehler - GET http://localhost:3000/audioFiles/output.ogg
Vielen Dank im Voraus für jede Beratung! Lassen Sie mich auch wissen, wenn jemand mehr Informationen über den Fehler oder den Code benötigt.
EDIT - das ist eine vereinfachte Version meiner Verzeichnisstruktur ist ...
Project
|
+-- audioFiles(folder)
| |
| + - output.ogg
| + - music.mp3
|
+-- public(folder)
| |
| + - images(folder)
| + - stylesheets(folder)
|
+-- routes(folder)
| |
| +-- index.js
|
+-- views(folder)
| |
| +-- speech.pug
|
+ -- app.js
Sind 'audioFiles/output.ogg' auf dem Server vorhanden? Wenn ja, haben Sie Probleme beim Laden des statischen Inhalts. –
@Mukesh Sharma Ja, es existiert auf dem Server. Wenn ich ein Problem beim Laden statischer Inhalte habe, wie würde ich das beheben? – ItsMeRileyP
cool. Zeigen Sie Ihre Verzeichnisstruktur an. Sie müssen 'express.static' verwenden. –