Nota, attualmente non hai esperienza nel comporre o modificare il codice C ++, in cui è scritto il codice che dovrà comporre o modificare.
In particolare, window.speechSynthesis.speak()
non fornisce attualmente un'opzione per restituire l'audio generato dalla chiamata di funzione come Blob
, ArrayBuffer
o AudioBuffer
su Chromium o Firefox , dove hanno presentato richiesta di funzionalità per lo stesso
Numero 733051 , Bug 1377893 .
La soluzione alternativa che è stata composta in SpeechSynthesisRecorder.js consiste nell'utilizzare navigator.mediaDevices.getUserMedia()
e MediaRecorder()
per registrare l'output audio di .speak()
chiamata da Monitor of Built-in Audio Analog Stereo
, che produce risultati attesi su Chromium, anche se riproduzione di audio incoerente su Firefox . Tuttavia, perché dovremmo usare navigator.mediaDevices.getUserMedia()
e MediaRecorder()
per creare una copia dell'audio generato, invece di fornire un parametro a .speak()
che indica che l'audio generato non deve essere riprodotto, ma piuttosto restituito come Blob
, ArrayBuffer
, AudioBuffer
o altro tipo di dati?
meSpeak.js
libreria offre un'opzione rawdata
- rawdata: Do not play, return data only. The type of the returned data is derived from the value (case-insensitive) of 'rawdata':
- 'base64': returns a base64-encoded string.
- 'mime': returns a base64-encoded data-url (including the MIME-header). (synonyms: 'data-url', 'data-uri', 'dataurl', 'datauri')
- 'array': returns a plain Array object with uint 8 bit data.
- default (any other value): returns the generated wav-file as an ArrayBuffer (8-bit unsigned).
C'è stata una discussione precedente sull'incorporazione dell'API Web Speech con l'API Web Audio, ad esempio su RE: Interagire con WebRTC, l'API Web Audio e altre fonti esterne
2) Storing and processing text-to-speech fragments.
Rather than mandating immediate output of the synthesized audio stream, it should be considered to introduce an "outputStream" property on a TextToSpeech object which provides a MediaStream object. This allows the synthesized stream to be played through the element, processed through the Web Audio API or even to be stored locally for caching, in case the user is using a device which is not always connected to the internet (and when no local recognizer is available). Furthermore, this would allow websites to store the synthesized audio to a wave file and save this on the server, allowing it to be re-used for user agents or other clients which do not provide an implementation.
citato in API Web Speech possibile in combinazione con l'API Web Audio
I actually asked about adding this on the Web Speech mailing list, and was basically told "no". To be fair to people on that mailing list, I was unable to think of more than one or two specific use cases when prompted.
So unless they've changed something in the past month or so, it sounds like this isn't a planned feature.
e più recentemente da questo utente su MediaStream, ArrayBuffer, risultato audio Blob da speak () per la registrazione?
Domande:
1) A questo punto dello sviluppo di questo progetto o ricerca, è più possibile tentare di imparare il C ++ e la metodologia di inviare una patch ai manutentori del browser per l'implementazione descritta; cioè, per fare le modifiche richieste al codice sorgente del browser da solo?
2) Continuare a chiedere aiuto dagli autori delle API di Web Speech ai browser e, o agli sviluppatori in generale, verso il completamento dell'implementazione descritta?
3) Entrambi 1) e 2)?