2016-01-04 13 views
15

Sto cercando di convertire un file mp3 per il formato previsto dal tag audio nel linguaggio di markup Amazon Alexa SSML come descritto qui: https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/speech-synthesis-markup-language-ssml-referenceQual è il comando corretto per convertire un file mp3 nella versione codec richiesta (MPEG versione 2) e bit rate (48 kbps) per Amazon Alexa SSML?

La documentazione consiglia di utilizzare https://www.ffmpeg.org/ffmpeg.html

ho provato questo comando, ma puo' t trovare il giusto codec da utilizzare: ffmpeg -y -i input.mp3 -ar 44100 -ab 48k -codec:a mpeg2 -ac 1 output.mp3

so che ho bisogno di convertire il file perché Alexa non riesce con il seguente errore: The audio is not of a supported MPEG version

+0

prova con -codec: a mp2 –

risposta

17

È un po 'confuso, e francamente un po' strano che amazon richiede questo. i file mp3 possono essere mpeg1 o mpeg2 o mpeg-2.5 (non standard, ma ampiamente supportati). A tale scopo, le principali differenze tra le versioni sono bitrate e frequenza di campionamento. Amazon richiede 48kbps (che è supportato in tutte le versioni di mpeg). Successivamente, mpeg-2 supporta solo frequenze di campionamento di 22050 Hz, 24000 Hz e 16000 Hz. Così ricampionamento ad una di quelle frequenze dovrebbe costringere ffmpeg in MPEG-2 strati 3.

ffmpeg -y -i input.mp3 -ar 16000 -ab 48k -codec:a libmp3lame -ac 1 output.mp3

più

informazioni qui e qui:

http://www.mp3-tech.org/programmer/frame_header.html

https://en.wikipedia.org/wiki/MP3

+2

Grazie mille! 24000 non è riuscito con questo errore: "L'audio è di un bitrate 64000 non supportato" ma 16000 ha funzionato come un incantesimo! – Asimov4

+1

Anche per me è stato necessario 16.000 bitrate. –

+0

Avevo bisogno anche del bitrate 16.000. –

3

Ecco quello che ho avuto fare per farlo funzionare:

ffmpeg -i input.mp3 -b:a 48k -ar 16000 output.mp3 

ecco l'output quando gioco con mpg123:

$ mpg123 output.mp3 
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3 
     version 1.22.4; written and copyright by Michael Hipp and others 
     free software (LGPL) without any warranty but with best wishes 

Playing MPEG stream 1 of 1: output.mp3 ... 

MPEG 2.0 layer III, VBR, 16000 Hz joint-stereo 

[0:02] Decoding of output.mp3 finished. 
+0

questo esempio non funziona, qualche pensiero? – Viper

0

offriamo un servizio di fare proprio questo come parte dei nostri strumenti Bespoken. Maggiori informazioni qui:
http://docs.bespoken.tools/en/latest/api/classes/bstencode.html

Ad esempio, è possibile chiamare:

var bst = require("bespoken-tools"); 
var encoder = new bst.BSTEncode({ bucket: "S3Bucket" }); 
encoder.encodeURLAndPublish("https://s3.amazonaws.com/alexa-files/my-raw-file.wav"); 

che prenderà l'URL passato al encodeURLAndPublish e automaticamente in codice e caricarlo S3, in modo che sia accessibile da Alexa.

È inoltre possibile chiamare encodeFileAndPublish, che codificherà un file locale e lo caricherà su S3.