|
2320 | 2320 | nchannels = <Wave_read>.getnchannels() <span class="hljs-comment"># Number of samples per frame.</span>
|
2321 | 2321 | sampwidth = <Wave_read>.getsampwidth() <span class="hljs-comment"># Sample size in bytes.</span>
|
2322 | 2322 | nframes = <Wave_read>.getnframes() <span class="hljs-comment"># Number of frames.</span>
|
| 2323 | +<params> = <Wave_read>.getparams() <span class="hljs-comment"># Immutable collection of above.</span> |
2323 | 2324 | <bytes> = <Wave_read>.readframes(nframes) <span class="hljs-comment"># Returns next 'nframes' frames.</span>
|
2324 | 2325 | </code></pre>
|
2325 | 2326 | <pre><code class="python language-python hljs"><Wave_write> = wave.open(<span class="hljs-string">'<path>'</span>, <span class="hljs-string">'wb'</span>)
|
2326 | 2327 | <Wave_write>.setframerate(<int>) <span class="hljs-comment"># 44100 for CD, 48000 for video.</span>
|
2327 | 2328 | <Wave_write>.setnchannels(<int>) <span class="hljs-comment"># 1 for mono, 2 for stereo.</span>
|
2328 | 2329 | <Wave_write>.setsampwidth(<int>) <span class="hljs-comment"># 2 for CD quality sound.</span>
|
| 2330 | +<Wave_write>.setparams(<params>) <span class="hljs-comment"># Sets all parameters.</span> |
2329 | 2331 | <Wave_write>.writeframes(<bytes>) <span class="hljs-comment"># Appends frames to file.</span>
|
2330 | 2332 | </code></pre>
|
2331 | 2333 | <ul>
|
|
2381 | 2383 | write_to_wav_file(<span class="hljs-string">'test.wav'</span>, samples_f)
|
2382 | 2384 | </code></pre></div>
|
2383 | 2385 |
|
| 2386 | +<div><h4 id="playsawavfile">Plays a WAV file:</h4><pre><code class="python language-python hljs"><span class="hljs-comment"># $ pip3 install simpleaudio</span> |
| 2387 | +<span class="hljs-keyword">import</span> wave, simpleaudio |
| 2388 | +<span class="hljs-keyword">with</span> wave.open(<span class="hljs-string">'test.wav'</span>, <span class="hljs-string">'rb'</span>) <span class="hljs-keyword">as</span> file: |
| 2389 | + p = file.getparams() |
| 2390 | + frames = file.readframes(p.nframes) |
| 2391 | + simpleaudio.play_buffer(frames, p.nchannels, p.sampwidth, p.framerate) |
| 2392 | +</code></pre></div> |
| 2393 | + |
| 2394 | +<div><h3 id="texttospeech">Text to Speech</h3><pre><code class="python language-python hljs"><span class="hljs-comment"># $ pip3 install pyttsx3</span> |
| 2395 | +<span class="hljs-keyword">import</span> pyttsx3 |
| 2396 | +engine = pyttsx3.init() |
| 2397 | +engine.say(<span class="hljs-string">'Sally sells seashells by the seashore.'</span>) |
| 2398 | +engine.runAndWait() |
| 2399 | +</code></pre></div> |
| 2400 | + |
2384 | 2401 | <div><h2 id="synthesizer"><a href="#synthesizer" name="synthesizer">#</a>Synthesizer</h2><div><h4 id="playspopcornbygershonkingsley">Plays Popcorn by Gershon Kingsley:</h4><pre><code class="python language-python hljs"><span class="hljs-comment"># $ pip3 install simpleaudio</span>
|
2385 | 2402 | <span class="hljs-keyword">import</span> simpleaudio, math, struct
|
2386 | 2403 | <span class="hljs-keyword">from</span> itertools <span class="hljs-keyword">import</span> chain, repeat
|
|
0 commit comments