2016-01-04 8 views
15

Próbuję przekonwertować plik mp3 na format oczekiwany przez tag audio w języku znaczników Amazon Alexa SSML jak opisano tutaj: https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/speech-synthesis-markup-language-ssml-referenceJakie jest właściwe polecenie, aby przekonwertować plik mp3 na wymaganą wersję kodeku (wersja MPEG 2) i szybkość transmisji bitów (48 kb/s) dla Amazon Alexa SSML?

Dokumentacja zaleca stosowanie https://www.ffmpeg.org/ffmpeg.html

Próbowałem tego polecenia, ale może” t znaleźć odpowiedniego kodeka użyć: ffmpeg -y -i input.mp3 -ar 44100 -ab 48k -codec:a mpeg2 -ac 1 output.mp3

wiem, że trzeba przekonwertować do pliku, ponieważ Alexa nie powiedzie się z powodu następującego błędu: The audio is not of a supported MPEG version

+0

spróbuj z -codec: a mp2 –

Odpowiedz

17

To trochę zagmatwane, i trochę dziwne, że amazon tego wymaga. Pliki mp3 mogą być mpeg1 lub mpeg2 lub mpeg-2.5 (niestandardowe, ale szeroko obsługiwane). W tym celu główne różnice między wersjami to bitrate i częstotliwość próbkowania. Amazon wymaga 48kbps (co jest obsługiwane we wszystkich wersjach mpeg). Następnie mpeg-2 obsługuje tylko częstotliwości próbkowania 22050 Hz, 24000 Hz i 16000 Hz. Więc resampling do jednego z tych częstotliwości powinny zmusić ffmpeg do MPEG-2 Layer 3.

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

więcej informacji tutaj oraz tutaj:

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

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

+2

Dzięki za tonę! 24000 nie powiodło się z tym błędem: "Dźwięk ma nieobsługiwaną szybkość transmisji 64000", ale 16000 działało jak czar! – Asimov4

+1

Wymagana była również 16000 bitrate. –

+0

Potrzebowałem również 16.000 bitrate. –

3

Oto co miałem zrobić, aby działało:

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

Oto wyjście gdy gram go 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

ten przykład nie działa, jakieś myśli? – Viper

0

Oferujemy usługę zrobić tylko to jako część naszych Narzędzia bespoken. Więcej informacji tutaj:
http://docs.bespoken.tools/en/latest/api/classes/bstencode.html

Na przykład, można zadzwonić:

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

To zajmie URL przekazany do encodeURLAndPublish i automatycznie zakodować go i przesłać go do S3, więc jest ona dostępna przez Alexa.

Można również zadzwonić pod numer encodeFileAndPublish, który zakoduje plik lokalny i prześle go do S3.

Powiązane problemy