실시간으로 프로그래밍 방식으로 재생 속도(피치 아님) 변경

실시간으로 프로그래밍 방식으로 재생 속도(피치 아님) 변경

오디오 파일(가능한 경우 wav 및 mp3)을 재생할 수 있고 재생 속도를 실시간으로 완벽하게 변경할 수 있는 방법을 제공하는 소프트웨어를 찾고 있습니다. 내 말은, 틈, 팝, 소음이 없다는 것입니다. 샘플 시계가 부드럽게 바뀌는 것과 같습니다.

나는 피치를 일정하게 유지하는 데 관심이 없습니다(이 질문과 같습니다:사운드 파일을 느리게 또는 빠르게 재생). 대신, 피치는 새로운 템포를 따라야 합니다.

프로그래밍 방식으로 속도를 원래 속도의 20%에서 200%로 변경해야 합니다.

바퀴를 다시 만들 필요 없이 바로 사용할 수 있는 것이 있나요?

답변1

mplayer파일을 재생할 수 있으며 wav키와 wav 파일을 사용하여 mp3대화식으로 속도를 변경할 수 있지만 wav 파일은 원래 속도보다 느리게 재생할 수 없습니다. 동일한 작업을 수행하고 파일 속도를 늦추는 것도 가능합니다. 속도가 빠를수록 주파수가 증가합니다.[]vlcwav

답변2

mplayer -af scaletempo -speed 0.5 filename.mp3다음을 사용하여 재생 속도를 변경하지 않고도 재생 속도를 변경할 수 있습니다.오디오 톤.

실시간으로 속도를 변경하려면(명령줄에서 mplayer를 호출한 후) 다음에서 실행 중인 플레이어를 생성해야 합니다.슬레이브 모드.

인용하다:

  1. https://stackoverflow.com/questions/36867732/slave-mode-mplayer-pipe
  2. https://stackoverflow.com/questions/15856922/python-send-command-to-mplayer-under-slave-mode

https://github.com/ankitects/anki/blob/484377b8091179504b21b29be1de6925c70af4bd/qt/aqt/sound.py#L374-L404

class SimpleMplayerPlayer(SimpleProcessPlayer, SoundOrVideoPlayer):
    args, env = _packagedCmd(["mplayer", "-really-quiet", "-noautosub"])
    if isWin:
        args += ["-ao", "win32"]

class SimpleMplayerSlaveModePlayer(SimpleMplayerPlayer):
    def __init__(self, taskman: TaskManager):
        super().__init__(taskman)
        self.args.append("-slave")

    def _play(self, tag: AVTag) -> None:
        assert isinstance(tag, SoundOrVideoTag)
        self._process = subprocess.Popen(
            self.args + [tag.filename],
            env=self.env,
            stdin=subprocess.PIPE,
            stdout=subprocess.DEVNULL,
            stderr=subprocess.DEVNULL,
            startupinfo=startup_info(),
        )
        self._wait_for_termination(tag)

    def command(self, *args: Any) -> None:
        """Send a command over the slave interface.
        The trailing newline is automatically added."""
        str_args = [str(x) for x in args]
        if self._process:
            self._process.stdin.write(" ".join(str_args).encode("utf8") + b"\n")
            self._process.stdin.flush()

    def seek_relative(self, secs: int) -> None:
        self.command("seek", secs, 0)

    def toggle_pause(self) -> None:
        self.command("pause")

답변3

명령줄에서 속도를 설정해야 하는 경우 -speed SPEED다음 옵션을 사용하세요.

mplayer -speed 0.1 file

[참고: 및 키를 사용하여 이 속도를 실시간으로 변경할 수 있습니다 ].

물론 mpv그것도 적용됩니다.

신용 거래:https://linuxacademy.com/blog/linux/tutorial-playing-around-with-mplayer/

답변4

사용자가 말했듯이

mplayer -af scaletempo file.mp4

당신에게 꼭 필요한 것. 피치를 유지하면서 템포(속도)를 조정합니다. 기본적으로 속도는 변경되지만 속도가 높거나 낮을 때 다람쥐/유령 효과가 나타나지 않습니다.

스케일 템포에 대한 추가 정보여기

이제 "[" 또는 "]"를 사용하여 즉시 재생 속도를 높이거나 낮출 수 있습니다.

설정에서 미리 설정할 수 없기 때문에(또는 설정 방법을 찾을 수 없어서) 하나 만들기로 결정했습니다.데스크탑 포털(LXDE 데스크탑에 있는 애플리케이션의 별칭)을 사용하여 파일 탐색기에서 관련 파일을 열고 코드를 로드할 수 있습니다.

누군가 필요할 경우를 대비해 여기에 남겨 두겠습니다.

[Desktop Entry]
Type=Application
Name=mplayer scaletempo
GenericName=Media Player
X-GNOME-FullName=MPlayer Media Player
Comment=Play movies and songs
Keywords=Player;Capture;Audio;Music;Song;Video;Movie;Film;Clip;DVD;VCD;CD;Disc;DVB;TV;
Icon=mplayer
#TryExec=gmplayer
Exec=/usr/bin/mplayer -af scaletempo %F
Terminal=false
Categories=GTK;AudioVideo;Audio;Video;Player;TV;
MimeType=application/x-cd-image;application/x-cue;application/x-mpegurl;application/mxf;application/x-netshow-channel;application/ogg;application/ram;application/vnd.adobe.flash.movie;application/vnd.apple.mpegurl;application/vnd.rn-realmedia;application/x-shockwave-flash;application/smil;audio/aac;audio/ac3;audio/x-adpcm;audio/x-aiff;audio/AMR;audio/AMR-WB;audio/x-ape;audio/basic;audio/flac;audio/x-flac;audio/x-flac+ogg;audio/x-m4b;audio/x-matroska;audio/mp2;audio/mp4;audio/mpeg;audio/x-mpegurl;audio/x-ms-asx;audio/x-ms-wma;audio/x-musepack;audio/ogg;audio/vnd.rn-realaudio;audio/x-scpls;audio/x-voc;audio/x-vorbis+ogg;audio/x-wav;audio/x-wavpack;video/3gpp;video/3gpp2;video/dv;video/x-flic;video/x-flv;video/x-matroska;video/mp2t;video/mp4;video/mpeg;video/vnd.mpegurl;video/x-ms-asf;video/x-ms-wmv;video/x-msvideo;video/x-nsv;video/ogg;video/x-ogm+ogg;video/quicktime;video/vnd.rn-realvideo;video/x-theora+ogg;video/webm;x-content/audio-cdda;x-content/audio-dvd;x-content/video-dvd;x-content/video-svcd;x-content/video-vcd;

텍스트 파일 blah.desktop에 넣으면 창 관리자에서 "새" 응용 프로그램을 사용할 수 있습니다.

관련 정보