在Python上存储声音

时间:2018-04-23 16:06:22

标签: python audio directsound

我一直试图让我的python代码根据输入存储声音。我正在努力开发代码,我在网上发现的所有资源都很有帮助。任何人都可以给我一些建议吗?

我正在尝试创建一个存储用户名的程序,并要求他们说出来并为每个特定名称存储声音。它也可以播放。

1 个答案:

答案 0 :(得分:0)

根据我的理解,您希望为每个名称保存音频文件,然后询问用户他/她的名字。如果名称匹配,则您要播放包含其姓名的文件。 如果上述理解是正确的,您可以通过多种方式实现这一目标。

最简单的方法是以某种音频格式存储您想要的名称(例如,wav)。 在这里,我从网上获得了几个美国城市的音频发音。 接下来,将这些文件存储在文件夹中。

出于演示目的,我在相同文件夹中包含名称的代码和音频文件。

接下来使用python我们创建一个字典,其中键作为名称,相应的音频文件作为值。

你可以通过阅读文件夹并动态生成字典,文件名为关键字(对你来说是一个例外)来表达它。

由于您使用了Directsound代码,我假设您正在使用Windows。 您可以使用winsound库(我认为是标准库)

然后您可以询问用户他/她的名字。如果名称与字典中的键值匹配,则可以播放名称,否则播放错误文件。

工作代码

import winsound

names = {'NewYork' : 'NewYork.wav',
         'LosAngeles' : 'LosAngeles.wav',
         'Denver' : 'Denver.wav',
         'Dallas' : 'Dallas.wav'         
         }

def error():
    print("{} not in database".format(name))
    winsound.Beep(2500, 1000) #freq, duration in ms

name = raw_input("enter name:")
if name in names:
    winsound.PlaySound(names.get(name), winsound.SND_FILENAME)
else:
    error()