TipToiDog - Tip Toi Dog With Python

Overview

TipToiDog

Was ist dieses Projekt?

Meine 5-jährige Tochter spielt sehr gerne das Quiz Wer kennt alle Hunde. Dabei interessiert sie sich gar nicht so sehr für die Details auf der Rückseite der Quizkarten, sondern hauptsächlich für die Hundenamen. Da sie aber noch nicht lesen kann, kann sie das Quiz nicht alleine machen. Da kam mir die Idee, den TipToi-Stift von Ravensburger dafür einzusetzen, dass sie das Spiel doch alleine spielen kann. Der Stift sollte also die jeweiligen Hundenamen vorlesen. Ich war zuversichtlich, dass es bestimmt paar clevere Leute gibt, die herausgefunden haben, wie man den Stift auch für eigene Projekt einsetzen kann. Und siehe da: Es gibt das geniale Tool tttool. Hiermit konnte ich das Projekt in ca. einem Tag umsetzen. Desweiteren war noch ein bisschen Python-Coding notwendig.

Wie funktioniert der TipToi-Stift überhaupt?

Dies wird hier hervorragend beschrieben und daher erlaube ich mir die Faulheit, die Funktionsweise nicht näher zu erläutern. Es sei nur so viel gesagt: Der Stift arbeitet optisch und erkennt so genannte OID-Codes. Jeder Hundename muss nun also einem OID-Code zu geordnet werden und dann jedem OID-Code noch eine entsprechende Audio-Datei, die den Hundenamen enthält.

Welche Dateien sind für was?

Wenn ihr direkt damit loslegen wollt, das Quiz um die TipToi-Funktion zu erweitern, so braucht ihr lediglich 2 Dateien:

  • dogs.gme: Diese Datei enthält alle Sounddateien und die notwendigen Information für den TipToi, um das Hundequiz auf diesem zu spielen. Hier könnt ihr genauer nachlesen, wenn ihr das Konzept der gme-Datei genauer verstehen wollt. Diese Datei könnt ihr direkt auf den Stift schieben.
  • dogs_box.pdf: In dieser Datei sind die Steuerfelder und alle Hunde-Namen in OID-Code abgebildet, wobei in jedem Codefeld ein Knochen eingebettet ist. Diese Datei muss ausgedruckt werden und dann jeder Knochen auf das entsprechende Hundekarte geklebt werden. Folgendes Bild zeigt 3 Hundekarten mit aufgeklebtem "OID-Knochen":

Die Steuerzeichen (Stop habe ich nicht verwendet), sind auf der Box aufgeklebt:

Beim Drucken liegt leider der Teufel im Detail, [siehe auch hier](https://github.com/entropia/tip-toi-reveng/wiki/Printing). Ich habe es mit meinem Drucker (Brother HL-L2370DN) mit den folgenden Druckeinstellungen gut hinbekommen:
  • Auflösung: HQ1200
  • Druckeinstellungen: Manuell
    • Helligkeit: 0
    • Konstrast: +34
    • Grafikqualität: Text
    • Rest wie vorgegeben

Auf weiße Etiketten spricht mein TipToi hervorragend an. Allerdings hatte ich den Ehrgeiz die Knochen auf transparente Etiketten zu drucken. Das klappt zwar immer noch, aber nicht mehr ganz so gut. Achtung: Der Druck darf nicht skaliert werden!

Wenn ihr das Projekt modifizieren wollt, also vielleicht die Audiodateien verändern wollt, weil sie euch nicht gefallen, oder ihr eigene Hundekarten ergänzen wollt, braucht ihr folgende Dateien, wobei die Reihenfolge, in der ich sie hier nennen, einen gewissen Ablauf beschreibt.

  • dogs.xls: Diese Excel-Tabelle enthält drei Spalten:
    1. Der Hundename in exakter Schreibweise
    2. Ein Dateiname (ohne Leerzeichen), der den Hundenamen repräsentiert.
    3. Die Sprache (repräsentiert durch ein Kürzel), in der später die Audio-Datei für den Hundenamen generiert werden soll
  • gen_dogs.py: Dieses Skript lädt diese Excel-Datei ein und lässt eine Schleife über alle Hundenamen laufen. Hierbei wird mit Hilfe der Google Text-to-Speech-API eine Audiodatei für jeden Hundenamen erzeugt. Desweiteren wird eine entsprechende yaml-Datei erzeugt. Diese Datei benötigt das tttool dann später um zu wissen für welche Ereignisse/Begriffe (hier: die Hundename) welche Aktionen (hier: Abspielen des Hundenamens) generiert und OID codiert werden sollen.
  • hello_dog.ogg: Diese ist eine akustische Begrüßung, die ich eingespielt habe und die ertönt, wenn das Start-Symbol gewählt wird. Sie kann nach Belieben durch eine andere Datei ersetzt werden. Eure Kinder freuen sich bestimmt, wenn sie eure eigene Stimme zu hören bekommen.
  • gen_gme.bat: Dieses Batch-Skript erzeugt aus der yaml-Datei und den Soundfiles die entsprechende gme-Datei
  • gen_oid.bat: Dieses Batch-Skript erzeugt die OID-Codes in einer Tabelle im PDF-Format. Die Größe habe ich entsprechend so gewählt, dass der Knochen auf der Quizkarte nicht zu viel Platz einnimmt. Außerdem habe ich die Pixel-Größe auf 3 (statt wie standardmäßig 2) eingestellt. Dadurch hat mein Stift die Codes überhaupt erst erkannt.
  • overlay.docx: In diesem Word-Dokument sind Hundeknochen tabellarisch im gleichen Raster angeordnet, wie die OID-Codes in dem PDF, was durch das vorherige Skript erstellt worden ist. Daraus muss eine PDF-Datei erstellt werden (auch hier nicht skalieren!)
  • merge_pdf.py: Dieses Python-Skript verschmelzt die dogs.pdf mit der overlay.pdf zu dogs_box.pdf, die dann gemäß obiger Beschreibung ausgedruckt werden kann.

Viel Spaß beim Verwenden und Modifizieren! Über eine Rückmeldung, wenn ihr es erfolgreich umgesetzt habt, würde ich mich freuen!

Code for One-shot Talking Face Generation from Single-speaker Audio-Visual Correlation Learning (AAAI 2022)

One-shot Talking Face Generation from Single-speaker Audio-Visual Correlation Learning (AAAI 2022) Paper | Demo Requirements Python = 3.6 , Pytorch

FuxiVirtualHuman 84 Jan 03, 2023
Live Hand Tracking Using Python

Live-Hand-Tracking-Using-Python Project Description: In this project, we will be

Hassan Shahzad 2 Jan 06, 2022
The official repository for our paper "The Neural Data Router: Adaptive Control Flow in Transformers Improves Systematic Generalization".

Codebase for learning control flow in transformers The official repository for our paper "The Neural Data Router: Adaptive Control Flow in Transformer

Csordás Róbert 24 Oct 15, 2022
Time Series Forecasting with Temporal Fusion Transformer in Pytorch

Forecasting with the Temporal Fusion Transformer Multi-horizon forecasting often contains a complex mix of inputs – including static (i.e. time-invari

Nicolás Fornasari 6 Jan 24, 2022
Eth brownie struct encoding example

eth-brownie struct encoding example Overview This repository contains an example of encoding a struct, so that it can be used in a function call, usin

Ittai Svidler 2 Mar 04, 2022
It helps user to learn Pick-up lines and share if he has a better one

Pick-up-Lines-Generator(Open Source) It helps user to learn Pick-up lines Share and Add one or many to the DataBase Unique SQLite DataBase AI Undercon

knock_nott 0 May 04, 2022
The PyTorch implementation of DiscoBox: Weakly Supervised Instance Segmentation and Semantic Correspondence from Box Supervision.

DiscoBox: Weakly Supervised Instance Segmentation and Semantic Correspondence from Box Supervision The PyTorch implementation of DiscoBox: Weakly Supe

Shiyi Lan 1 Oct 23, 2021
PyTorch reimplementation of hand-biomechanical-constraints (ECCV2020)

Hand Biomechanical Constraints Pytorch Unofficial PyTorch reimplementation of Hand-Biomechanical-Constraints (ECCV2020). This project reimplement foll

Hao Meng 59 Dec 20, 2022
CAMoE + Dual SoftMax Loss (DSL): Improving Video-Text Retrieval by Multi-Stream Corpus Alignment and Dual Softmax Loss

CAMoE + Dual SoftMax Loss (DSL): Improving Video-Text Retrieval by Multi-Stream Corpus Alignment and Dual Softmax Loss This is official implement of "

程星 87 Dec 24, 2022
RRL: Resnet as representation for Reinforcement Learning

Resnet as representation for Reinforcement Learning (RRL) is a simple yet effective approach for training behaviors directly from visual inputs. We demonstrate that features learned by standard image

Meta Research 21 Dec 07, 2022
Lightweight stereo matching network based on MobileNetV1 and MobileNetV2

MobileStereoNet: Towards Lightweight Deep Networks for Stereo Matching

Cognitive Systems Research Group 139 Nov 30, 2022
Sample Prior Guided Robust Model Learning to Suppress Noisy Labels

PGDF This repo is the official implementation of our paper "Sample Prior Guided Robust Model Learning to Suppress Noisy Labels ". Citation If you use

CVSM Group - email: <a href=[email protected]"> 22 Dec 23, 2022
[ECCV 2020] Reimplementation of 3DDFAv2, including face mesh, head pose, landmarks, and more.

Stable Head Pose Estimation and Landmark Regression via 3D Dense Face Reconstruction Reimplementation of (ECCV 2020) Towards Fast, Accurate and Stable

Remilia Scarlet 221 Dec 30, 2022
🇰🇷 Text to Image in Korean

KoDALLE Utilizing pretrained language model’s token embedding layer and position embedding layer as DALLE’s text encoder. Background Training DALLE mo

HappyFace 74 Sep 22, 2022
The 1st place solution of track2 (Vehicle Re-Identification) in the NVIDIA AI City Challenge at CVPR 2021 Workshop.

AICITY2021_Track2_DMT The 1st place solution of track2 (Vehicle Re-Identification) in the NVIDIA AI City Challenge at CVPR 2021 Workshop. Introduction

Hao Luo 91 Dec 21, 2022
TalkNet 2: Non-Autoregressive Depth-Wise Separable Convolutional Model for Speech Synthesis with Explicit Pitch and Duration Prediction.

TalkNet 2 [WIP] TalkNet 2: Non-Autoregressive Depth-Wise Separable Convolutional Model for Speech Synthesis with Explicit Pitch and Duration Predictio

Rishikesh (ऋषिकेश) 69 Dec 17, 2022
Food Drinks and groceries Images Multi Lingual (FooDI-ML) dataset.

Food Drinks and groceries Images Multi Lingual (FooDI-ML) dataset.

41 Jan 04, 2023
OpenAi's gym environment wrapper to vectorize them with Ray

Ray Vector Environment Wrapper You would like to use Ray to vectorize your environment but you don't want to use RLLib ? You came to the right place !

Pierre TASSEL 15 Nov 10, 2022
Tooling for the Common Objects In 3D dataset.

CO3D: Common Objects In 3D This repository contains a set of tools for working with the Common Objects in 3D (CO3D) dataset. Download the dataset The

Facebook Research 724 Jan 06, 2023
Implementation of "Distribution Alignment: A Unified Framework for Long-tail Visual Recognition"(CVPR 2021)

Implementation of "Distribution Alignment: A Unified Framework for Long-tail Visual Recognition"(CVPR 2021)

105 Nov 07, 2022