使用Python的pydub库播放音乐并打印二进制数据

import pydub
import pydub.playback
import numpy as np
import time
import threading

def play_audio_and_print_binary(file_path):
    # 加载音频文件
    audio = pydub.AudioSegment.from_file(file_path)
    
    # 将音频转换为原始数据
    raw_data = np.array(audio.get_array_of_samples())
    
    # 创建播放线程
    def play_audio():
        pydub.playback.play(audio)
    
    play_thread = threading.Thread(target=play_audio)
    play_thread.start()
    
    # 打印二进制数据
    try:
        for sample in raw_data:
            # 将样本转换为二进制表示(16位)
            binary_representation = format(sample & 0xFFFF, '016b')
            print(binary_representation, end=' ', flush=True)
            # 控制打印速度,使其与音频播放大致同步
            time.sleep(audio.duration_seconds / len(raw_data))
    except KeyboardInterrupt:
        print("\n停止播放...")
    
    play_thread.join()

if __name__ == "__main__":
    # 替换为你的音频文件路径
    audio_file = "s.mp3"
    play_audio_and_print_binary(audio_file)

  

posted @ 2025-08-20 16:30  华腾智算  阅读(21)  评论(0)    收藏  举报
https://damo.alibaba.com/ https://tianchi.aliyun.com/course?spm=5176.21206777.J_3941670930.5.87dc17c9BZNvLL