擅长:python、mysql、java
<p>什么样的440赫兹的声音?在“440赫兹”有许多类型的波:正弦、锯子、正方形等。你可以用长笛吹a,这也可以算数。</p>
<p>假设您需要正弦波,那么看起来您可以使用<code>pygame.sndarray.samples</code>生成声音对象。(我还没有测试过)您可以使用以下命令创建示例:</p>
<pre><code>samples = [math.sin(2.0 * math.pi * frequency * t / sample_rate) for t in xrange(0, duration_in_samples)]
</code></pre>
<p>希望这是最基本的正弦波。<code>frequency</code>是所需频率,单位为赫兹。<code>sample_rate</code>是生成的音频中每秒采样数:44100赫兹是一个典型值。<code>duration_in_samples</code>是音频的长度。(5*44100==5秒,如果您的音频采样率为44100赫兹。)</p>
<p>在传递到<code>pygame.sndarray.samples</code>之前,可能需要将<code>samples</code>转换为<code>numpy.array</code>。文档表明音频应该与<code>pygame.mixer.get_init</code>返回的格式相匹配,因此适当地调整<code>samples</code>,但这是基本的想法。(<code>mixer.get_init</code>将告诉您上面的<code>sample_rate</code>变量,以及您是否需要考虑立体声,以及您是否需要调整或移动波的振幅。)</p>
<p>将<code>samples</code>设为整数个波长,它应该循环。</p>