AudioTTS
Text-To-Speech (TTS) node. Transforms text to audio data by using a synthetic computer voice. Besides creating the audio data, this node can also provide weights to morph between different geometries. This can be used to animate the lips of avatars.
Inheritance
Code
XML encoding
<AudioTTS text='' visemeKey='' weightValue='' visemeDurationScale='0.5' autoSilentIndex='-1' enabled='TRUE' description='' loop='FALSE' pitch='1.0' startTime='0' stopTime='0' pauseTime='0' resumeTime='0' triggerName='Sound' logFeature='' />
Classic encoding
AudioTTS { text "" visemeKey [""] weightValue [] visemeDurationScale 0.5 autoSilentIndex -1 enabled TRUE description "" loop FALSE pitch 1.0 startTime 0 stopTime 0 pauseTime 0 resumeTime 0 triggerName "Sound" logFeature [""] }
Interface
Filter: X3D only | Avalon only | All
id | Name | DataType | PartType | Default | ValueType | Description |
---|---|---|---|---|---|---|
weights_changed | MFFloat | outputOnly | Provides the weights for the different geometries used to create the final geometry. Usually, you have one geometry for each viseme provided by the text-to-speech system. For each geometry, you get one weight. The sum of all weights is 1. You multiply all geometries with their respective weight and sum them up. The result is an animation of the lips that is synchronous to the speech. | |||
weightValue | MFFloat | initializeOnly | You can use this field to remap weights. This contains (number of visemes) * (number of geometries) weight values. When the node has to display viseme i, it takes the values starting at i * (number of visemes) as weights. Otherwise, it sets the weight of the geometry that corresponds to the viseme to 1 and the weights of all other geometries to 0. | |||
logFeature | MFString | inputOutput | state, child, parent, route, eventIn, eventOut | controls the logging of changes, state: log state changes (e.g. live), child: log child add/remove, parent: log parent add/remove, route: log route add/remove; eventIn: log receiving of events, eventOut: log sending of events: guiView, runtime system should create node-view, guiEdit: runtime system should create node-editeverything: log everything | ||
visemeKey | MFString | initializeOnly | Maps visemes to geometries. E.g. when the viseme a is represented by the first geometry, you put "a" at index 0 of this field, etc. | |||
enabled | SFBool | inputOutput | TRUE | Enables or disables audio sources. A disabled audio source does not produce audio data. | ||
isActive | SFBool | outputOnly | isActive true/false events are sent when playback starts/stops. | |||
isPaused | SFBool | outputOnly | isPaused true/false events are sent when TimeSensor is paused/resumed. | |||
loop | SFBool | inputOutput | FALSE | repeat indefinitely when loop=true, repeat only once when loop=false. | ||
fraction_changed | SFFloat | outputOnly | fraction_changed continuously sends value in range [0,1] showing time progress in the current cycle. | |||
pitch | SFFloat | inputOutput | 1.0 | Multiplier for the rate at which sampled sound is played. changing pitch also changes playback speed. | ||
visemeDurationScale | SFFloat | inputOutput | 0.5 | This value determines how long the visemes are displayed during the animation. By default the value is 0.5, which means that half of the time the current viseme is displayed, a quarter of the time is used to interpolate from the previous viseme to the current viseme, and a quarter of the time is used to interpolate from the current viseme to the next viseme. | ||
autoSilentIndex | SFInt32 | inputOutput | -1 | The index of the silent geometry. When this field is >= 0, the node ensures that the corresponding geometry is shown at the end of the animation sequence. | ||
metadata | SFNode | inputOutput | MetadataObject | container for payload metadata inside MetadataSet element | ||
voice | SFNode | initializeOnly | Voice | Contains a Voice node the describes the synthetic computer voice. | ||
description | SFString | inputOutput | text description to be displayed for action of this node. Hint: many XML tools substitute XML character references automatically if needed. | |||
marker_reached | SFString | outputOnly | Sends the name of a marker in the text when the computer voice reaches the position of the marker. Use this outslot to synchronize animations with the spoken text. Not yet implemented. | |||
text | SFString | inputOutput | The text that gets spoken by the computer voice. | |||
triggerName | SFString | initializeOnly | Sound | name of the dynamic context-slot which is used by the run-time environment (e.g. Jobs) to trigger the node. Life-Nodes will automatically connect the context-eventOutut to the triggerSlot-eventInput Slot. | ||
cycleTime | SFTime | outputOnly | cycleTime sends a time outputOnly at startTime, and also at the beginning of each new cycle (useful for synchronization with other time-based objects). | |||
duration_changed | SFTime | outputOnly | duration_changed is length of time in seconds for one cycle of audio. | |||
elapsedTime | SFTime | outputOnly | Current elapsed time since TimeSensor activated/running, cumulative in seconds, and not counting any paused time. | |||
pauseTime | SFTime | inputOutput | 0 | When time now >= pauseTime, isPaused becomes true and TimeSensor becomes paused. Absolute time: number of seconds since Jan 1, 1970, 00:00:00 GMT. Hint: usually receives a ROUTEd time value. | ||
ready | SFTime | outputOnly | Sends the current timestamp when audio data is available. Currently not implemented. | |||
resumeTime | SFTime | inputOutput | 0 | When resumeTime becomes less than time now, isPaused becomes false and TimeSensor becomes inactive. Absolute time: number of seconds since Jan 1, 1970, 00:00:00 GMT. Hint: usually receives a ROUTEd time value. | ||
startTime | SFTime | inputOutput | 0 | Absolute time: number of seconds since Jan 1, 1970, 00:00:00 GMT. Hint: usually receives a ROUTEd time value. | ||
stopTime | SFTime | inputOutput | 0 | Absolute time: number of seconds since Jan 1, 1970, 00:00:00 GMT. Hint: usually receives a ROUTEd time value. | ||
time | SFTime | outputOnly | Time continuously sends the absolute time (since January 1, 1970) for a given simulation tick. | |||
triggerSlot | SFTime | inputOnly | slot which is used internally to connect a dynamic context-slot which name is set by the triggerName value. Its used automatically to install run-time environment trigger. |