Ошибка Unicode при отправке аудио / MPEG-ответа django rest framework - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь отправить audio/mpeg ответ в API.API получает некоторый параметр от пользователя и создает аудио на этой основе.Я могу преобразовать вывод в поток и могу записать в файл.Когда я открываю этот файл, я слышу правильный вывод.

Но когда я пытаюсь отправить поток байтов в качестве вывода в объекте Response django-restframework, я получаю unicodeDecodeError.

Я пытался отправить HttpResponse, и аудиопоток отлично с этим работает.

from rest_framework.response import Response
from rest_framework.views import APIView


class GetTextAudioView(APIView):
    def post(self, request, *args, **kwargs):
        text = request.data.get('text')
        response = polly.synthesize_speech(Text=text, OutputFormat='mp3', VoiceId='Joanna')
        response = response.get('AudioStream')
        with open('speech.mp3', "wb") as file:
            file.write(response.read())
        return Response(data=response, content_type='audio/mpeg', status=status.HTTP_200_OK)

Я не понимаю, почему Django rest framework пытается проанализировать ответ как JSON, когда явно content_typeне application/json.

Заранее спасибо.

...