Я пытаюсь отправить 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
.
Заранее спасибо.