Welcome to mirror list, hosted at ThFree Co, Russian Federation.

playback.py « presentation « stndrd « osce « torch « dnn - gitlab.xiph.org/xiph/opus.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 4d7e6c78b98cfaac72d1acafba9228e45b11d462 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.animation

def make_playback_animation(savepath, spec, duration_ms, vmin=20, vmax=90):
    fig, axs = plt.subplots()
    axs.set_axis_off()
    fig.set_size_inches((duration_ms / 1000 * 5, 5))
    frames = []
    frame_duration=20
    num_frames = int(duration_ms / frame_duration + .99)

    spec_height, spec_width = spec.shape
    for i in range(num_frames):
        xpos = (i - 1) / (num_frames - 3) * (spec_width - 1)
        new_frame = axs.imshow(spec, cmap='inferno', origin='lower', aspect='auto', vmin=vmin, vmax=vmax)
        if i in {0, num_frames - 1}:
            frames.append([new_frame])
        else:
            line = axs.plot([xpos, xpos], [0, spec_height-1], color='white', alpha=0.8)[0]
            frames.append([new_frame, line])


    ani = matplotlib.animation.ArtistAnimation(fig, frames, blit=True, interval=frame_duration)
    ani.save(savepath, dpi=720)