リアルタイムでプログラムで再生速度(ピッチではない)を変更する

リアルタイムでプログラムで再生速度(ピッチではない)を変更する

オーディオファイル(可能であればwavとmp3)を再生し、再生速度をリアルタイムで完全に変更する方法を提供するソフトウェアを探しています。私の言葉は、ギャップ、ポップ、ノイズがないということです。サンプル時計がスムーズに変わるのと同じです。

私はピッチを一定に保つことに興味がありません(この質問のように:サウンドファイルをゆっくり再生する)。代わりに、ピッチは新しいテンポに従う必要があります。

プログラムでは、速度を元の速度の20%から200%に変更する必要があります。

ホイールを作り直さなくてもすぐに使えるものはありますか?

答え1

mplayerファイルを再生でき、wavキーとw​​avファイルを使用して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に配置すると、ウィンドウマネージャで「新しい」アプリケーションを使用できます。

関連情報