如何在播放该歌曲的声音文件时逐字母读取python中的歌曲[关闭]

Posted

技术标签:

【中文标题】如何在播放该歌曲的声音文件时逐字母读取python中的歌曲[关闭]【英文标题】:How To Read a Song in python letter by letter while playing the sound file of that song [closed] 【发布时间】:2014-03-10 16:45:36 【问题描述】:

我正在尝试让 python 在播放歌曲的同时从文本文件中读取歌曲。 它读取歌曲的方式有点像 portal(Still Alive) 的歌曲正在播放。

我觉得这有点棘手,但我需要 python 一次打印出歌曲的每个字母,同时与实际歌曲保持同步。

任何帮助将不胜感激。

问候!

编辑

import urllib.request # Example URL 

url = "http://ntl.matrix.com.br/pfilho/oldies_list/top/lyrics/black_or_white.txt" # Open URL: returns file-like object 
lyrics = urllib.request.urlopen(url) # Read raw data, this will return a "bytes object" 
text = lyrics.read() # Print raw data 
print(text) # Print decoded data: 
print(text.decode('utf-8'))

编辑:

好的,所以我认为这可能是一个非常广泛的答案,所以这就是我想要做的:只需能够通过从文本文件中读取每个字符来打印它,并能够设置读取/打印它的速度。

【问题讨论】:

到目前为止你有什么? 1) 在歌曲中建立详尽的时间点列表,您希望在其中显示文本。 2) 播放歌曲 3) 根据#1 中生成的列表监控播放时间并根据需要输出文本 @wnnmaw 好吧.. 到目前为止,我查看了互联网并搜索了一些文档,并找到了一些代码。此代码读取文本文件并打印出其内容。 code #!/usr/bin/env python3 import urllib.request # Example URL url="ntl.matrix.com.br/pfilho/oldies_list/top/lyrics/…" # 打开 URL:返回类文件对象 Lyrics=urllib.request.urlopen(url) # 读取原始数据,这将返回一个“字节对象” text=lyrics.read() # 打印原始数据 print(text) # 打印解码数据: print(text.decode('utf-8')) @MarcB 我是 python 新手,最近才开始学习如何读取文件。任何代码可以帮助我解决你的问题,所以我可以看看? 您尝试做的事情并不难编码(对于新手而言),但它需要@MarcB 正在谈论的详尽列表。您需要知道打印每个字符之间要等待多长时间……这很详尽。 【参考方案1】:

这里有一些基本代码,假设您事先掌握了大量信息。

import sys
from time import sleep
# For python 2 import this
#from itertools import izip as zip
# Delay in seconds to wait before printing each *character* of the song lyrics
time_delays = [0.1, 0.1, 0.1, 0.5, 0.2, 0.1, 0.1]
song_lyrics = "thesong"

print "Let's sing a song..."
for song_char, char_delay in zip(song_lyrics, time_delays):
    sleep(char_delay)
    sys.stdout.write(song_char)
    sys.stdout.flush()

希望对您有所帮助。我使用sys.stdout 而不是print 的原因是因为它更容易控制,并且您需要刷新缓冲区,否则屏幕只会在缓冲区已满时更新。

【讨论】:

代码给了我这个错误:code Traceback (most recent call last): File "C:/Users/User/Desktop/songtest.py", line 3, in <module> from itertools import izip ImportError: cannot import name izip 啊,你一定用的是python 3?我修复了上面的代码。 python 3 中的zip 相当于python 2 中的itertools.izip

以上是关于如何在播放该歌曲的声音文件时逐字母读取python中的歌曲[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Python 音频只会让窗户发出叮叮当当的声音

JQuery 不播放多个声音文件或延迟事件

IOS UI界面

在Adobe Animate ActionScript 3.0中循环

如何循环播放歌曲?

播放无声视频以及音乐应用程序播放歌曲