2017-07-20 2 views
1

Wie können Sie das Audio von HTML5 herunterladen oder aber dieses Audio von Text-zu-Sprache funktioniert auf dieser Website?Wie Audio extrahieren/herunterladen, die von JS gespielt wird?

Ich versuche, einige Tests mit echtem Audio zu automatisieren, um auf Amazon Alexa zu testen, und so brauche ich eine riesige Auswahl an Audiodateien. Ich habe also alle möglichen Phrasen, die ich ausprobieren möchte, aber ich brauche für jede eine andere Stimme.

Ich fand https://ttsreader.com/ und ich mag die Vielzahl und natürlichen Stimmen, die sie haben, aber ich kann nicht herausfinden, wie man das Text-in-Sprache-Audio programmatisch herunterlädt, wenn die Stimme spielt.

Ich plane, wie 6k Audio-Dateien zwischen den verschiedenen Stimmen herunterladen, so dass ich definitiv dieses Skript irgendwie, als ihre vorgeschlagenen Weg durch Audacity wäre viel zu zeitaufwendig.

+1

Anforderung Ist Audio-Ausgabe von Text in Sprache zum Download? – guest271314

+0

Ja, Aktualisierte Frage, um das widerzuspiegeln – joshbenner851

+0

Diese Stimmen gehören Ihnen (oder zumindest denen Ihres Systems + vielleicht ein paar von Ihren Browsern). Vielleicht denken Sie vielleicht, ein anderes Werkzeug als den Browser zu benutzen, um diese Arbeit zu machen? Ich denke, es gibt einige Softs, die auch diese Sprachvoices verwenden können, und vielleicht sogar mit einer Rate> x1 oder mehrere Stimmen gleichzeitig. – Kaiido

Antwort

0

Sie können navigator.mediaDevices.getUserMedia() mit Einstellungen Objekt {audio:true}, MediaRecorder() verwenden. Bei navigator.mediaDevices() Erlaubnisaufforderung wählen Sie , um aufzunehmen, um MediaStream der Audioausgabe des Ausgangs zu den Lautsprechern oder zu den Kopfhörern aufzuzeichnen.

Sie können alternativ Voices im lokalen Dateisystem installieren oder erstellen und window.speechSynthesis.speak() und SpeechUtterance mit dem obigen Ansatz verwenden, um die Audioausgabe lokal aufzuzeichnen.

Oder verwenden Sie den Ansatz, Audioausgabe als Besucher auf einer Website aufzunehmen.

Siehe auch

+0

Ich denke, dass nur Sie (und ein paar andere)' Monitor von eingebautem Audio Analog Stereo' als a haben werden Gerät. Dies klingt wie ein virtuelles Gerät, vielleicht von Ihrem Betriebssystem, ich habe es nicht selbst, aber auf jeden Fall nicht geeignet für öffentlich zugängliche Webseiten. Auch für den persönlichen Gebrauch wird diese Methode so lange dauern, wie Sie eine externe Software wie Audacity verwenden, wie in Frage gestellt. – Kaiido

+0

@Kaiido Ja, aber was sind nun die Alternativen für die Aufzeichnung der nativen Text-in-Sprache-Audioausgabe, die Verwendung von JavaScript ohne eine Bibliothek oder die Anpassung des Browserquellcodes? – guest271314

+0

@Kaiido fwiw haben kürzlich versucht, eine Lösung für die aktuelle Anfrage zu erstellen oder zu finden [Wie implementiert man die Option zum Zurückgeben von Blob, ArrayBuffer oder AudioBuffer von window.speechSynthesis.speak() - Aufruf] (https: //softwareengineering.stackexchange. com/q/352073 /), ohne dass bisher eine brauchbare Cross-Browser-Lösung geschaffen wurde. Wir können unsere eigenen Sprachobjekte lokal installieren oder erstellen oder unsere eigene API für diese erstellen. Das Zurückgeben einer Audiodatei anstelle einer Ausgabe an Lautsprecher scheint derzeit nicht in Browsern implementiert zu sein. Schlagen Sie alternative Lösungen vor? – guest271314

3

Soooo dies ist spezifisch für, wenn Sie einen Mac haben, und Sie sind glücklich mit der Stimmen App le bietet, aber ich wurde erleuchtet, um den Befehl say, mit dem Sie Audio-Dateien in verschiedenen Stimmen herunterladen können.

Starten Sie einfach man say, um alle Ihre Optionen zum Exportieren von/etc anzuzeigen, und say -v ? , um alle Stimmen zu sehen.

Diese guide erfahren Sie, wie mehr Stimmen

Brechen Sie einen schneller Bash-Skript zum Download und Sie sind alle gehen gesetzt

# A = item you want Alexa to be changing, B = Voices available 
A=(Potatoes Steak Carrots) B=(Fiona Serena Daniel) 
nameLength=${#A[@]} 
voiceLength=${#B[@]} 

for((i=0;i<$nameLength;i++)); do 
    for((x=0;x<$voiceLength;x++)); do 
     say "Alexa, ask spartycafe to log ${A[$i]}" -v ${B[$x]} -o ${A[$i]}$B$x.m4a; 
    done ; 
done 
Verwandte Themen