📄 ch17.htm
字号:
executing the <tt><font FACE="Courier">Speak</font></tt> method. However, there are
additional properties and methods that you can use to control the behavior of the TTS
engine. </p>
<h3><a NAME="AdjustingtheSpeedofVoicePlayback">Adjusting the Speed of Voice Playback</a></h3>
<p>You can adjust the speed of audio playback using the <tt><font FACE="Courier">Speed</font></tt>
property. The speed of audio playback is measured in <i>words per minute</i> (<i>wpm</i>).
The default speed of playback is 150wpm. Setting the <tt><font FACE="Courier">Speed</font></tt>
property to 0 causes the engine to speak at the lowest possible speed. Setting it to -1
results in the highest possible speaking speed. </p>
<p>You can use the <tt><font FACE="Courier">Speed</font></tt> property to both read and
write the playback value. Add a single command button to the form. Set its <tt><font
FACE="Courier">Name</font></tt> property to <tt><font FACE="Courier">cmdSpeed</font></tt>
and its <tt><font FACE="Courier">Caption</font></tt> property to <tt><font FACE="Courier">S&peed</font></tt>.
Then add the code shown in Listing 17.5 to the <tt><font FACE="Courier">cmdSpeed_click</font></tt>
event. </p>
<hr>
<blockquote>
<b><p>Listing 17.5. Adding code to the <tt><font FACE="Courier">cmdSpeed_Click</font></tt>
event.<br>
</b></p>
</blockquote>
<blockquote>
<tt><font FACE="Courier"><p>Private Sub cmdSpeed_Click()<br>
'<br>
' determine min and max speed<br>
' for this TTS engine<br>
'<br>
Dim iMin As Integer<br>
Dim iMax As Integer<br>
Static iDefault As Integer<br>
Dim cMsg As String<br>
'<br>
' get default first time<br>
If iDefault = 0 Then<br>
iDefault = objVText.Speed ' get default
speed<br>
End If<br>
'<br>
' get slowest speed<br>
objVText.Speed = 0 ' set to slowest speed <br>
iMin = objVText.Speed ' get slowest speed <br>
'<br>
' set fastest speed<br>
objVText.Speed = -1 ' set to fastest speed <br>
iMax = objVText.Speed ' get fastest speed <br>
'<br>
' set back to default value<br>
objVText.Speed = iDefault<br>
'<br>
' show results<br>
cMsg = "Slowest Speed: " & CStr(iMin) & Chr(13)<br>
cMsg = cMsg & "Fastest Speed: " & CStr(iMax)
& Chr(13)<br>
cMsg = cMsg & "Default Speed: " & CStr(iDefault)<br>
'<br>
MsgBox cMsg, vbInformation, "Voice Command Speed
Settings"<br>
'<br>
End Sub</font></tt> </p>
</blockquote>
<hr>
<p>When you save and run the project, press the <tt><font FACE="Courier">Speed</font></tt>
button (be sure to press <tt><font FACE="Courier">Register</font></tt> and <tt><font
FACE="Courier">Enabled</font></tt> first). You'll see a message box showing the speed
limits of your TTS engine. Your message box should look like the one in Figure 17.4. </p>
<p><a HREF="f17-4.gif"><b>Figure 17.4 : </b><i>Displaying the TTS engine speeds.</i></a> </p>
<p>To test the effects of changing playback speed, add two buttons, one label control, and
one text box control to the form. Use Table 17.4 and Figure 17.5 as guides when adding
these controls. </p>
<p><a HREF="f17-5.gif"><b>Figure 17.5 : </b><i>Adding the speed controls to the form.</i></a>
<br>
</p>
<p align="center"><b>Table 17.4. Controls for adjusting playback speed.</b> </p>
<div align="center"><center>
<table BORDERCOLOR="#000000" BORDER="1" WIDTH="80%">
<tr>
<td><i>Control</i></td>
<td WIDTH="109"><i>Property</i> </td>
<td WIDTH="122"><i>Setting</i></td>
</tr>
<tr>
<td WIDTH="176"><tt><font FACE="Courier">VB.CommandButton</font></tt> </td>
<td WIDTH="109"><tt><font FACE="Courier">Name</font></tt></td>
<td WIDTH="122">cmdSpGet</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Caption</font></tt> </td>
<td WIDTH="122">"&Get Speed"</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Height</font></tt> </td>
<td WIDTH="122">300</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Left</font></tt> </td>
<td WIDTH="122">4560</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">TabIndex</font></tt> </td>
<td WIDTH="122">20</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Top</font></tt> </td>
<td WIDTH="122">3840</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Width</font></tt> </td>
<td WIDTH="122">1215</td>
</tr>
<tr>
<td WIDTH="176"><tt><font FACE="Courier">VB.CommandButton</font></tt> </td>
<td WIDTH="109"><tt><font FACE="Courier">Name</font></tt></td>
<td WIDTH="122">cmdSpSet</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Caption</font></tt> </td>
<td WIDTH="122">"Se&t Speed"</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Height</font></tt> </td>
<td WIDTH="122">300</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Left</font></tt> </td>
<td WIDTH="122">5880</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">TabIndex</font></tt> </td>
<td WIDTH="122">19</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Top</font></tt> </td>
<td WIDTH="122">3840</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Width</font></tt> </td>
<td WIDTH="122">1215</td>
</tr>
<tr>
<td WIDTH="176"><tt><font FACE="Courier">VB.TextBox</font></tt> </td>
<td WIDTH="109"><tt><font FACE="Courier">Name</font></tt></td>
<td WIDTH="122">txtSpeed</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Height</font></tt> </td>
<td WIDTH="122">300</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Left</font></tt> </td>
<td WIDTH="122">3960</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">TabIndex</font></tt> </td>
<td WIDTH="122">17</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Top</font></tt> </td>
<td WIDTH="122">3840</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Width</font></tt> </td>
<td WIDTH="122">495</td>
</tr>
<tr>
<td WIDTH="176"><tt><font FACE="Courier">VB.Label</font></tt> </td>
<td WIDTH="109"><tt><font FACE="Courier">Name</font></tt></td>
<td WIDTH="122">lblSpeed</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Alignment</font></tt> </td>
<td WIDTH="122">1 'Right Justify</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Caption</font></tt> </td>
<td WIDTH="122">"Speed:"</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Height</font></tt> </td>
<td WIDTH="122">300</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Left</font></tt> </td>
<td WIDTH="122">3120</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">TabIndex</font></tt> </td>
<td WIDTH="122">18</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Top</font></tt> </td>
<td WIDTH="122">3840</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="109"><tt><font FACE="Courier">Width</font></tt> </td>
<td WIDTH="122">615</td>
</tr>
</table>
</center></div>
<h3><a NAME="AddingPlaybackControlsforTTSService">Adding Playback Controls for TTS
Services</a></h3>
<p>You can also add the ability to pause, rewind, fast-forward, and restart TTS playback.
The TTS fast-forward and rewind methods cause the engine to move the playback pointer
approximately one sentence. Refer to Table 17.5 and Figure 17.5 to add the playback button
controls to the form.<br>
</p>
<p align="center"><b>Table 17.5. Adding the playback buttons to the form.</b> </p>
<div align="center"><center>
<table BORDERCOLOR="#000000" BORDER="1" WIDTH="80%">
<tr>
<td><i>Control</i></td>
<td WIDTH="99"><i>Property</i> </td>
<td WIDTH="94"><i>Setting</i></td>
</tr>
<tr>
<td WIDTH="176"><tt><font FACE="Courier">VB.Frame</font></tt> </td>
<td WIDTH="99"><tt><font FACE="Courier">Name</font></tt></td>
<td WIDTH="94">fraAudio</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="99"><tt><font FACE="Courier">Caption</font></tt> </td>
<td WIDTH="94">"Playback"</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="99"><tt><font FACE="Courier">Height</font></tt> </td>
<td WIDTH="94">2655</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="99"><tt><font FACE="Courier">Left</font></tt> </td>
<td WIDTH="94">1560</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="99"><tt><font FACE="Courier">TabIndex</font></tt> </td>
<td WIDTH="94">26</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="99"><tt><font FACE="Courier">Top</font></tt> </td>
<td WIDTH="94">1440</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="99"><tt><font FACE="Courier">Width</font></tt> </td>
<td WIDTH="94">1455</td>
</tr>
<tr>
<td WIDTH="176"><tt><font FACE="Courier">VB.CommandButton</font></tt> </td>
<td WIDTH="99"><tt><font FACE="Courier">Name</font></tt></td>
<td WIDTH="94">cmdAudio</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="99"><tt><font FACE="Courier">Caption</font></tt> </td>
<td WIDTH="94">"Stop"</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="99"><tt><font FACE="Courier">Height</font></tt> </td>
<td WIDTH="94">375</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="99"><tt><font FACE="Courier">Index</font></tt> </td>
<td WIDTH="94">4</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="99"><tt><font FACE="Courier">Left</font></tt> </td>
<td WIDTH="94">1680</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="99"><tt><font FACE="Courier">TabIndex</font></tt> </td>
<td WIDTH="94">27</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="99"><tt><font FACE="Courier">Top</font></tt> </td>
<td WIDTH="94">3600</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="99"><tt><font FACE="Courier">Width</font></tt> </td>
<td WIDTH="94">1215</td>
</tr>
<tr>
<td WIDTH="176"><tt><font FACE="Courier">VB.CommandButton</font></tt> </td>
<td WIDTH="99"><tt><font FACE="Courier">Name</font></tt></td>
<td WIDTH="94">cmdAudio</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="99"><tt><font FACE="Courier">Caption</font></tt> </td>
<td WIDTH="94">"Resume"</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="99"><tt><font FACE="Courier">Height</font></tt> </td>
<td WIDTH="94">375</td>
</tr>
<tr>
<td WIDTH="176"> </td>
<td WIDTH="99"><tt><font FACE="Courier">Index</font></tt> </td>
<td WIDTH="94">3</td>
</tr>
<tr>
<td WIDTH="176"> </td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -