4. Intonation and "Phrase Libraries"

Intonation is necessary in allophone speech to add characters to words or parts of words. Up to now you will have been entering speech strings in lower case letters. If you use UPPER case letters of any allophone, the intonation goes UP. Try this:

LET s$="aaAAaaAAaaAAaaAAaa"

And you will hear a sound rather like someone yodelling. Note that the pitch of the allophones does not go up or down suddenly - it is "ramped" so that the transition is smooth. Try This:

10 LET s$="sp(EE)k n(oo) (EE)vil": PAUSE 1

You will be able to hear the intonation. Note that the intonation will be most noticeable on vowels and "voiced" allophones, but try experimenting with it to see what sort of effects you can obtain.

The keyvoices have relatively little intonation added so that they sound "neutral" for the purpose of typing in programs.

In a bracketed allophone, it does not matter if you mix upper and lower case inside the bracket, as long as you realise that it is the LAST character inside the bracket which determines the intonation of the allophone. For example, "(oUu)" is not intoned, whilst "(ouU)" is intoned up.

When you are using the MicroSpeech unit to make sentences, think how much easier it would be if you could build up sentences from a "library" of words and phrases. Suppose you wanted to make the unit say "I'm sorry, but your answer was incorrect". Rather than put this in one long string, you might want to construct the sentence from a "library" of stock phrases, like this:

10 LET a$="(II)'m sor(ee)"
20 LET b$=",but"
30 LET c$="y(OR) ans(er) woz"
40 LET d$="incurrect"
50 LET s$=a$: PAUSE 1: LET s$=b$: PAUSE 1: LET s$=c$: PAUSE 1:
LET s$=d$: PAUSE 1

Whilst this will work very well, there is another solution. You could set up the four strings as before but join them together ("concatenate") them into s$ by changing line 50 to read:

50 LET s$=a$+b$+c$+d$: PAUSE 1

Whilst this is more compact than the first method, it is still rather wasteful of strings. If you have to build up sentences from a library of more than ten phrases, then you will probably find that setting up a string array and concatenating the elements into s$ will be a better solution. You will need to "slice" some elements before concatenation in order to suppress the trailing spaces:

10 DIM a$(4,18)
20 LET a$(1)="(II)'m sor(ee)"
30 LET a$(2)=",but"
40 LET a$(3)="y(OR) ans(er) woz"
50 LET a$(4)="incurrect"
60 LET s$=a$(1)( TO 14)+a$(2)( TO 4)+a$(3)+a$(4)( TO 10)
70 PAUSE 1