Browse Source

Audio

pull/46/head
Jure Šorn 4 years ago
parent
commit
37d377649d
2 changed files with 38 additions and 0 deletions
  1. 21
      README.md
  2. 17
      index.html

21
README.md

@ -2730,6 +2730,7 @@ framerate = <Wave_read>.getframerate() # Number of frames per second.
nchannels = <Wave_read>.getnchannels() # Number of samples per frame. nchannels = <Wave_read>.getnchannels() # Number of samples per frame.
sampwidth = <Wave_read>.getsampwidth() # Sample size in bytes. sampwidth = <Wave_read>.getsampwidth() # Sample size in bytes.
nframes = <Wave_read>.getnframes() # Number of frames. nframes = <Wave_read>.getnframes() # Number of frames.
<params> = <Wave_read>.getparams() # Immutable collection of above.
<bytes> = <Wave_read>.readframes(nframes) # Returns next 'nframes' frames. <bytes> = <Wave_read>.readframes(nframes) # Returns next 'nframes' frames.
``` ```
@ -2738,6 +2739,7 @@ nframes = <Wave_read>.getnframes() # Number of frames.
<Wave_write>.setframerate(<int>) # 44100 for CD, 48000 for video. <Wave_write>.setframerate(<int>) # 44100 for CD, 48000 for video.
<Wave_write>.setnchannels(<int>) # 1 for mono, 2 for stereo. <Wave_write>.setnchannels(<int>) # 1 for mono, 2 for stereo.
<Wave_write>.setsampwidth(<int>) # 2 for CD quality sound. <Wave_write>.setsampwidth(<int>) # 2 for CD quality sound.
<Wave_write>.setparams(<params>) # Sets all parameters.
<Wave_write>.writeframes(<bytes>) # Appends frames to file. <Wave_write>.writeframes(<bytes>) # Appends frames to file.
``` ```
* **Bytes object contains a sequence of frames, each consisting of one or more samples.** * **Bytes object contains a sequence of frames, each consisting of one or more samples.**
@ -2802,6 +2804,25 @@ samples_f = (add_noise(f) for f in read_wav_file('test.wav'))
write_to_wav_file('test.wav', samples_f) write_to_wav_file('test.wav', samples_f)
``` ```
#### Plays a WAV file:
```python
# $ pip3 install simpleaudio
import wave, simpleaudio
with wave.open('test.wav', 'rb') as file:
p = file.getparams()
frames = file.readframes(p.nframes)
simpleaudio.play_buffer(frames, p.nchannels, p.sampwidth, p.framerate)
```
### Text to Speech
```python
# $ pip3 install pyttsx3
import pyttsx3
engine = pyttsx3.init()
engine.say('Sally sells seashells by the seashore.')
engine.runAndWait()
```
Synthesizer Synthesizer
----------- -----------

17
index.html

@ -2320,12 +2320,14 @@ framerate = &lt;Wave_read&gt;.getframerate() <span class="hljs-comment"
nchannels = &lt;Wave_read&gt;.getnchannels() <span class="hljs-comment"># Number of samples per frame.</span> nchannels = &lt;Wave_read&gt;.getnchannels() <span class="hljs-comment"># Number of samples per frame.</span>
sampwidth = &lt;Wave_read&gt;.getsampwidth() <span class="hljs-comment"># Sample size in bytes.</span> sampwidth = &lt;Wave_read&gt;.getsampwidth() <span class="hljs-comment"># Sample size in bytes.</span>
nframes = &lt;Wave_read&gt;.getnframes() <span class="hljs-comment"># Number of frames.</span> nframes = &lt;Wave_read&gt;.getnframes() <span class="hljs-comment"># Number of frames.</span>
&lt;params&gt; = &lt;Wave_read&gt;.getparams() <span class="hljs-comment"># Immutable collection of above.</span>
&lt;bytes&gt; = &lt;Wave_read&gt;.readframes(nframes) <span class="hljs-comment"># Returns next 'nframes' frames.</span> &lt;bytes&gt; = &lt;Wave_read&gt;.readframes(nframes) <span class="hljs-comment"># Returns next 'nframes' frames.</span>
</code></pre> </code></pre>
<pre><code class="python language-python hljs">&lt;Wave_write&gt; = wave.open(<span class="hljs-string">'&lt;path&gt;'</span>, <span class="hljs-string">'wb'</span>) <pre><code class="python language-python hljs">&lt;Wave_write&gt; = wave.open(<span class="hljs-string">'&lt;path&gt;'</span>, <span class="hljs-string">'wb'</span>)
&lt;Wave_write&gt;.setframerate(&lt;int&gt;) <span class="hljs-comment"># 44100 for CD, 48000 for video.</span> &lt;Wave_write&gt;.setframerate(&lt;int&gt;) <span class="hljs-comment"># 44100 for CD, 48000 for video.</span>
&lt;Wave_write&gt;.setnchannels(&lt;int&gt;) <span class="hljs-comment"># 1 for mono, 2 for stereo.</span> &lt;Wave_write&gt;.setnchannels(&lt;int&gt;) <span class="hljs-comment"># 1 for mono, 2 for stereo.</span>
&lt;Wave_write&gt;.setsampwidth(&lt;int&gt;) <span class="hljs-comment"># 2 for CD quality sound.</span> &lt;Wave_write&gt;.setsampwidth(&lt;int&gt;) <span class="hljs-comment"># 2 for CD quality sound.</span>
&lt;Wave_write&gt;.setparams(&lt;params&gt;) <span class="hljs-comment"># Sets all parameters.</span>
&lt;Wave_write&gt;.writeframes(&lt;bytes&gt;) <span class="hljs-comment"># Appends frames to file.</span> &lt;Wave_write&gt;.writeframes(&lt;bytes&gt;) <span class="hljs-comment"># Appends frames to file.</span>
</code></pre> </code></pre>
<ul> <ul>
@ -2381,6 +2383,21 @@ samples_f = (add_noise(f) <span class="hljs-keyword">for</span> f <span class="h
write_to_wav_file(<span class="hljs-string">'test.wav'</span>, samples_f) write_to_wav_file(<span class="hljs-string">'test.wav'</span>, samples_f)
</code></pre></div> </code></pre></div>
<div><h4 id="playsawavfile">Plays a WAV file:</h4><pre><code class="python language-python hljs"><span class="hljs-comment"># $ pip3 install simpleaudio</span>
<span class="hljs-keyword">import</span> wave, simpleaudio
<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:
p = file.getparams()
frames = file.readframes(p.nframes)
simpleaudio.play_buffer(frames, p.nchannels, p.sampwidth, p.framerate)
</code></pre></div>
<div><h3 id="texttospeech">Text to Speech</h3><pre><code class="python language-python hljs"><span class="hljs-comment"># $ pip3 install pyttsx3</span>
<span class="hljs-keyword">import</span> pyttsx3
engine = pyttsx3.init()
engine.say(<span class="hljs-string">'Sally sells seashells by the seashore.'</span>)
engine.runAndWait()
</code></pre></div>
<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> <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>
<span class="hljs-keyword">import</span> simpleaudio, math, struct <span class="hljs-keyword">import</span> simpleaudio, math, struct
<span class="hljs-keyword">from</span> itertools <span class="hljs-keyword">import</span> chain, repeat <span class="hljs-keyword">from</span> itertools <span class="hljs-keyword">import</span> chain, repeat

Loading…
Cancel
Save