Я записываю звук с помощью 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