【问题标题】:How can I hide 'pydub' output information?如何隐藏“pydub”输出信息?
【发布时间】:2021-07-06 12:25:09
【问题描述】:

我的代码

from pydub import generators
from pydub.playback import play

play(generators.Sine(440).to_audio_segment(duration=1500))

在控制台输出中:

Input #0, wav, from '/var/folders/_7/0q83l2vn4zjd7zgqpy3v97840000gn/T/tmphlm6i9s_.wav':
Duration: 00:00:01.50, bitrate: 705 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 1 channels, s16, 705 kb/s

【问题讨论】:

    标签: python hide silent pydub


    【解决方案1】:

    我的电脑目前有问题,所以我无法检查,但这应该可以:

    from pydub import generators
    from pydub.playback import play
    import subprocess, sys
    
    play(generators.Sine(440).to_audio_segment(duration=1500))
    if sys.platform in ('linux', 'osx'):
        subprocess.call('clear', shell=True)
    elif sys.platform in ('nt', 'dos', 'ce'):
        subprocess.call('cls', shell=True)
    else:
        pass
    

    这是代码中的一种“hack”,每次发送输出时都会清除控制台。 像这样的东西可能会起作用,但同样,我无法对其进行测试:

    import contextlib
    import io
    
    from pydub import generators
    from pydub.playback import play
    
    with contextlib.redirect_stdout(io.StringIO()):
        play(generators.Sine(440).to_audio_segment(duration=1500))
    

    【讨论】:

    • 我之前试过了,但是不行:/还是谢谢
    • 很抱歉听到它不起作用,如果有的话:您可以从 pydub 切换。 Pydub 应该给它一个隐藏数据的选项。希望一切顺利!
    • 来自 GreyAlien502 的评论 - 如果您安装 simpleaudio(例如运行 pip install simpleaudio),它应该播放音频而不发出任何文本。注:此输出来自 ffplay,这是因为未安装 simpleaudio 而使用的。我们目前没有任何方法来抑制 ffplay 的输出。我们需要将参数 -loglevel -8 传递给 ffplay 调用。可以说,这应该是默认设置。
    【解决方案2】:

    我还没有找到解决方案,但我发现除了“pydub”之外还有三个替代方案。最后一个没有输出文本。 (4号)

    import time
    from gtts import gTTS
    tts = gTTS('Test', lang='en')
    tts.save('Test.mp3')
    
    #=================1
    print("1")
    from pygame import mixer
    mixer.init()
    mixer.music.load("Test.mp3") 
    mixer.music.play()
    time.sleep(1)
    
    #=================2
    print("2")
    from pydub import AudioSegment
    from pydub.playback import play
    path_to_file = r"Test.mp3"
    song = AudioSegment.from_mp3(path_to_file)
    play(song)
    time.sleep(1)
    
    #=================3
    print("3")
    import os
    os.system("mpg321 -q Test.mp3")
    time.sleep(1)
    
    #=================4
    print("4")
    from mpyg321.mpyg321 import MPyg321Player
    player = MPyg321Player()
    player.play_song("Test.mp3")
    time.sleep(1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-22
      • 1970-01-01
      • 2011-10-06
      相关资源
      最近更新 更多