惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
Last Week in AI
Last Week in AI
V
Visual Studio Blog
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
宝玉的分享
宝玉的分享
Apple Machine Learning Research
Apple Machine Learning Research
美团技术团队
WordPress大学
WordPress大学
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
罗磊的独立博客
The Cloudflare Blog
V
V2EX
月光博客
月光博客
有赞技术团队
有赞技术团队
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
GbyAI
GbyAI
博客园 - 【当耐特】
T
Tailwind CSS Blog

博客园 - 华腾智算

逐个注释 前端学习全景图 · HTML5 + CSS3 全部知识点 前端学习全景图 从零实现跨平台 3D 引擎架构方案 2026年的跨平台 GUI 开发趋势 杀毒 现代图形学的本质 C++快速掌握之一 rust控制流-各种循环 rust控制流 rust函数和注释 rust复核类型--元组tuple和数组 rust的类型 rust常量和变量 rust正确的猜数游戏 rust猜数游戏2 rust猜数游戏 字体选型 20260810代码 理解图形学之一入门 Rust 标准库 `std` 中最常用、最核心的模块和类型 Rust 标准库std RUST教程 rust理解一 rust多文件组织 - 华腾智算 Cargo.toml Rust 语言教程 C#常用 C#第六天异常 通俗易懂解释编程-适用于任何编程语言
使用Python的pydub库播放音乐并打印二进制数据
华腾智算 · 2025-08-20 · via 博客园 - 华腾智算
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  华腾智算  阅读(52)  评论()    收藏  举报