Я пытаюсь воспроизвести звук с MoviePy AudioFileClip , используя pygame .
У меня возникают проблемы, когда я пытаюсь преобразовать массив NumPy в узнаваемый объект pygame. В соответствии с документами , я могу использовать функцию pygame.sndarray.make_sound(NumPyArray)
для преобразования. Мой код:
import pygame
from moviepy.editor import *
sound = AudioFileClip("video.mp4") #sound from a video
newSound = sound.subclip("00:00:13","00:00:15.0") #clip of 13 to 15 sec.
soundArray = newSound.to_soundarray() #convert to NumPy array
pygame.init() #initialize Pygame
pygameSound = pygame.sndarray.make_sound(soundArray) #error here
pygameSound.play()
Вызов функции, newsound = pygame.sndarray.make_sound(newsound)
, от второй до последней строки выдает следующую ошибку при выполнении:
\lib\site-packages\pygame\_numpysndarray.py", line 75, in make_sound
return mixer.Sound (array=array)
ValueError: Array has unsupported item format 'd'
Почему здесь появляется ValueError
? Как я могу исправить эту проблему?
Редактировать: Построение звукового объекта-пигмея с pygame.mixer.Sound
Я также пытался изменить последний стих кода для реализации pygame.mixer.Sound()
. Согласно связанным документам , функция должна быть еще одним способом создания звука из массива NumPy в Pygame. Тем не менее, я также сталкиваюсь с проблемами при попытке этого. Заменив последний стих из приведенного выше кода следующим:
pygame.mixer.init()
pygameSound = pygame.mixer.Sound(soundArray)
pygameSound.play()
Код выполняется без ошибок, однако звук не воспроизводится. Это контрастирует с тем фактом, что я проверял наличие звука между метками времени 13 и 15 секунд в исходном файле video.mp4
.