Importer un Oravox

Sélectionnez un fichier ZIP (max 64 Mo).

Contenu requis du ZIP

  • cover.jpg — image de couverture (format .jpg).
  • Fichiers audio au format .mp3 ou .ogg. Les noms doivent correspondre aux références dans story.json (ex. 001.ogg).
  • story.json — fichier décrivant la structure de l'histoire (titre, couverture, chapitres, commandes, audio, choix).

Nommage

  • Le fichier JSON doit être nommé exactement story.json.

Format de story.json — résumé

Champs requis:

  • title -- titre de l'oravox, sera afficher dans la gallerie
  • cover -- nom du fichier qui servira de couverture (cover.jpg)
  • chapters -- Description des chapitres

Chaque chapitre doit contenir :

  • label : titre ou texte du chapitre.
  • commands : tableau de mots/expressions déclenchant le chapitre.
  • audio : nom du fichier audio à jouer (présent dans le ZIP).
  • choices : tableau d'identifiants des chapitres accessibles depuis ce chapitre (ex. ["002","003"]).

Champs additionel pour les chapitres

  • has: tableau (intro, outro, timeout) - permet de determiner si le generique d'introduction, le generique de fin, ou un timeout doit etre lu avec le chapitre. Plusieur valeur possible.
  • effects: tableau (timeout)

Pour les informations sur la production, tels que le genre, la duree, et la realisation: se referer à l'exemple ci-dessous. Voici la description de certains champs. Notez que ces champs sont optionel.

  • title: Le titre de l'oravox
  • subtitle: Un eventuel sous-titre
  • genre: Genres ou categories de l'oravox. Ex: Aventure, Historique. Lister par ordre d'importance.
  • duration: Duree total de l'oravox en seconde
  • synopsis: Le synopsis
  • actions: Nombre d'interaction disponible dans l'oravox
  • actors: Nombre d'acteur
  • choicePerInteraction: Nombre maximal de choix lors de chaque interaction
  • endings: Nombre de fin eventuelle
  • audience: Tranche d'age du publique. Valeurs possible: 3TO6, 6TO12, 6TO99, 12TO18, 18TO81

Bonnes pratiques

  • Respectez exactement le nommage des fichiers (sensible à la casse selon le serveur).
  • Utilisez des commandes courtes et des synonymes pour améliorer la détection vocale.
  • Pour un chapitre sans suite, utilisez "choices": [].
  • Ne laissez pas de virgules finales dans les objets/tableaux JSON (syntaxe stricte).
  • Validez story.json avec un validateur JSON avant envoi.

Exemple (story.json)


{
  "title": "Ce text sera afficher sur la page d'acceuil",
  "cover": "cover.avif",
  "spec": {
    "title": "Un titre",
    "subtitle": "un sous-titre",
    "genre": "Aventure/Historique/Burlesque",
    "duration": 900,
    "synopsis": "Une narration plein de rebondissement",
    "goal": "Conquerir le monde",
    "mode": "FULL, Interactif et Immersif avec musique, bruitage, et voix",
    "actions": 3,
    "actors": 1,
    "choicePerInteraction": 2,
    "endings": 4,
    "audience": "6TO99",
    "direction": "Me, Myself, and I",
    "production": "Providence.be",
    "free": true
  },
  "chapters": {
    "001": {
      "label": "Introduction.",
      "commands": ["intro", "introduction", "début"],
      "audio": "001.mp3",
      "choices": ["002", "003"],
      "has": ["intro","timeout"]
    },
    "002": {
      "label": "Aller à gauche dans la forêt",
      "commands": ["gauche", "forêt"],
      "audio": "002.mp3",
      "choices": ["004"]
    },
    "003": {
      "label": "Aller à droite vers la montagne",
      "commands": ["droite", "montagne"],
      "audio": "003.mp3",
      "choices": ["004"]
    },
    "004": {
      "label": "Fin de l'histoire",
      "commands": ["fin", "conclusion"],
      "audio": "004.mp3",
      "choices": ["001"],
      "has": ["outro"]
    }
  }
}

Attention : les fichiers manquants ou mal nommés empêcheront l'import.