@voqalize/avatar 0.5.7 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -45,15 +45,16 @@ appeared.
45
45
 
46
46
  `character` names one of the characters you can meet at
47
47
  https://voqalize.com/demos/avatar. Each release of this package can mount a
48
- fixed set of them, and a name it does not have throws, listing the ones it
49
- does. `listCharacters()` returns that set:
48
+ fixed set of them. A name it does not have mounts nothing: `createAvatar`
49
+ still returns, and the error goes to the console, listing the names it does
50
+ have. `listCharacters()` returns that set:
50
51
 
51
52
  ```js
52
53
  import { listCharacters } from "@voqalize/avatar";
53
54
 
54
55
  for (const c of await listCharacters()) {
55
56
  // c.name, c.still (an image URL), c.gender, c.age.min, c.age.max,
56
- // c.ethnicity[], c.tags[], c.suggestedVoices[]
57
+ // c.ethnicity[], c.tags[], c.suggestedVoices[], c.languages[]
57
58
  }
58
59
  ```
59
60
 
@@ -61,15 +62,21 @@ Use it to build a picker or a filter rather than writing the names down. The
61
62
  words in `gender`, `ethnicity` and `tags` come from closed lists, so a filter
62
63
  you build from one call matches the next. `suggestedVoices` lists the voices
63
64
  that suit the face, best first, as Voqalize voice ids such as
64
- `omnivoice/gauri`. It is advice: the avatar never speaks.
65
+ `omnivoice/gauri`. It is advice: the avatar never speaks. `languages` lists
66
+ the languages the first voice speaks, default first (`"en"` or `"hi"`). Send one as the `language` of every speech request: without it the
67
+ voice falls back to English, and Hindi text comes out with an
68
+ English accent.
65
69
 
66
70
  The gains are optional, from `0` to `2`, and `1` is as authored:
67
71
 
68
72
  - `mouthGain` sets how far the mouth moves.
69
73
  - `gestureGain` sets the size of nods and other gestures.
70
- - `motionGain` sets the amount of idle motion.
74
+ - `motionGain` sets the amount of idle and speaking motion: the head, trunk and shoulders. Left out, it is `1`, or `0.5` when the reader's system asks for reduced motion.
71
75
 
72
76
  The client must be connected to a Voqalize session that has the avatar turned on.
77
+ Nothing in the transport changes: the avatar draws in the browser from the
78
+ session's data-channel messages, so there is no video track to turn on, and
79
+ `video_out_enabled` (the path for server-rendered video avatars) stays off.
73
80
 
74
81
  ## Preload before the call
75
82
 
package/dist/index.d.ts CHANGED
@@ -40,7 +40,7 @@ export interface AvatarOptions {
40
40
  readonly mouthGain?: Gain;
41
41
  /** Nods and other gestures. */
42
42
  readonly gestureGain?: Gain;
43
- /** Idle motion. */
43
+ /** Idle and speaking motion. */
44
44
  readonly motionGain?: Gain;
45
45
  }
46
46
  export interface AvatarInstance {
@@ -70,6 +70,10 @@ export interface CharacterInfo {
70
70
  /** Voqalize voice ids that suit this face, best first — `"omnivoice/gauri"`,
71
71
  * for example. Advice only: the avatar never speaks. */
72
72
  readonly suggestedVoices: readonly string[];
73
+ /** The languages the first suggested voice speaks, default first: `"en"` or
74
+ * `"hi"`. Send one as the `language` of every speech request;
75
+ * without it the voice falls back to English. */
76
+ readonly languages: readonly string[];
73
77
  }
74
78
  /** A face `preloadAvatar` is building, or has built, ahead of its mount. */
75
79
  export interface PreloadedAvatar {
package/dist/pin.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const RUNTIME_URL = "https://avatar.voqalize.com/runtime/runtime.UTAI5EKI.js";
1
+ export declare const RUNTIME_URL = "https://avatar.voqalize.com/runtime/runtime.R6SM4O5D.js";
2
2
  export declare const PROTOCOL = 1;
package/dist/pin.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Written by scripts/build-runtime.mjs — the runtime this shim is released with.
2
- export const RUNTIME_URL = "https://avatar.voqalize.com/runtime/runtime.UTAI5EKI.js";
2
+ export const RUNTIME_URL = "https://avatar.voqalize.com/runtime/runtime.R6SM4O5D.js";
3
3
  export const PROTOCOL = 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voqalize/avatar",
3
- "version": "0.5.7",
3
+ "version": "0.6.1",
4
4
  "description": "A talking head for AI voice calls that embodies your pipecat client. This package loads the Voqalize avatar runtime.",
5
5
  "license": "MIT",
6
6
  "author": "Voqalize",
@@ -47,6 +47,7 @@
47
47
  "scripts": {
48
48
  "build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.json",
49
49
  "typecheck": "tsc -p tsconfig.json --noEmit",
50
+ "test": "echo 'run pnpm test from the repo root' >&2 && exit 1",
50
51
  "prepare": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.json"
51
52
  },
52
53
  "peerDependencies": {