проблема размещения аудио InputStream в Amazon Lex с помощью iOS SDK с Swift - PullRequest
0 голосов
/ 28 февраля 2020

Я записываю звук с помощью AVAudioRecorder со следующими настройками и записываю его в файл

        let settings = [
            AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
            AVSampleRateKey: 12000,
            AVNumberOfChannelsKey: 1,
            AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
        ]

        audioRecorder = try AVAudioRecorder(url: audioFileURL, settings: settings)
        audioRecorder.delegate = self
        audioRecorder.record()

Затем создаю AWSLexPostContentRequest postContentRequest, задаю свойства и отправляю его с помощью Lex.postContent

postContentRequest?.accept = "audio/mpeg"
        postContentRequest?.botAlias = "botAlias" 
        postContentRequest?.botName = "botName"
        postContentRequest?.contentType = "audio/l16; rate=16000; channels=1"
        postContentRequest?.inputStream = InputStream(url: getDocumentsDirectory().appendingPathComponent(audioFileName))
        postContentRequest?.userId = "userID"

Я получил верный ответ, за исключением того, что inputTranscript является пустой строкой. Я посмотрел в корзину S3, где я записываю аудиовход, и оказалось, что аудиовход не отправляется должным образом. Это <1 se c, тогда как я записал> 5 секунд аудио. Когда я воспроизводю звук через iPad, он воспроизводится просто отлично.

Есть предложения?

Версия Xcode 11.3.1 Swift 4.2

...