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!

🌊 Online machine learning in Python

In a nutshell River is a Python library for online machine learning. It is the result of a merger between creme and scikit-multiflow. River's ambition

OnlineML 4k Jan 02, 2023
Official code for paper Exemplar Based 3D Portrait Stylization.

3D-Portrait-Stylization This is the official code for the paper "Exemplar Based 3D Portrait Stylization". You can check the paper on our project websi

60 Dec 07, 2022
LETR: Line Segment Detection Using Transformers without Edges

LETR: Line Segment Detection Using Transformers without Edges Introduction This repository contains the official code and pretrained models for Line S

mlpc-ucsd 157 Jan 06, 2023
Industrial knn-based anomaly detection for images. Visit streamlit link to check out the demo.

Industrial KNN-based Anomaly Detection ⭐ Now has streamlit support! ⭐ Run $ streamlit run streamlit_app.py This repo aims to reproduce the results of

aventau 102 Dec 26, 2022
Concept drift monitoring for HA model servers.

{Fast, Correct, Simple} - pick three Easily compare training and production ML data & model distributions Goals Boxkite is an instrumentation library

98 Dec 15, 2022
an implementation of Revisiting Adaptive Convolutions for Video Frame Interpolation using PyTorch

revisiting-sepconv This is a reference implementation of Revisiting Adaptive Convolutions for Video Frame Interpolation [1] using PyTorch. Given two f

Simon Niklaus 59 Dec 22, 2022
Tweesent-back - Tweesent backend uses fastAPI as the web framework

TweeSent Backend Tweesent backend. This repo uses fastAPI as the web framework.

0 Mar 26, 2022
TransVTSpotter: End-to-end Video Text Spotter with Transformer

TransVTSpotter: End-to-end Video Text Spotter with Transformer Introduction A Multilingual, Open World Video Text Dataset and End-to-end Video Text Sp

weijiawu 66 Dec 26, 2022
Adversarial Attacks are Reversible via Natural Supervision

Adversarial Attacks are Reversible via Natural Supervision ICCV2021 Citation @InProceedings{Mao_2021_ICCV, author = {Mao, Chengzhi and Chiquier

Computer Vision Lab at Columbia University 20 May 22, 2022
This repository contains the code for the paper in EMNLP 2021: "HRKD: Hierarchical Relational Knowledge Distillation for Cross-domain Language Model Compression".

HRKD: Hierarchical Relational Knowledge Distillation for Cross-domain Language Model Compression This repository contains the code for the paper in EM

Chenhe Dong 2 Mar 24, 2022
T2F: text to face generation using Deep Learning

⭐ [NEW] ⭐ T2F - 2.0 Teaser (coming soon ...) Please note that all the faces in the above samples are generated ones. The T2F 2.0 will be using MSG-GAN

Animesh Karnewar 533 Dec 22, 2022
Deep Learning Visuals contains 215 unique images divided in 23 categories

Deep Learning Visuals contains 215 unique images divided in 23 categories (some images may appear in more than one category). All the images were originally published in my book "Deep Learning with P

Daniel Voigt Godoy 1.3k Dec 28, 2022
This is an official pytorch implementation of Lite-HRNet: A Lightweight High-Resolution Network.

Lite-HRNet: A Lightweight High-Resolution Network Introduction This is an official pytorch implementation of Lite-HRNet: A Lightweight High-Resolution

HRNet 675 Dec 25, 2022
PyTorch implementation of SwAV (Swapping Assignments between Views)

Unsupervised Learning of Visual Features by Contrasting Cluster Assignments This code provides a PyTorch implementation and pretrained models for SwAV

Meta Research 1.7k Jan 04, 2023
(Python, R, C/C++) Isolation Forest and variations such as SCiForest and EIF, with some additions (outlier detection + similarity + NA imputation)

IsoTree Fast and multi-threaded implementation of Extended Isolation Forest, Fair-Cut Forest, SCiForest (a.k.a. Split-Criterion iForest), and regular

141 Dec 29, 2022
Official PyTorch implementation of the paper "Graph-based Generative Face Anonymisation with Pose Preservation" in ICIAP 2021

Contents AnonyGAN Installation Dataset Preparation Generating Images Using Pretrained Model Train and Test New Models Evaluation Acknowledgments Citat

Nicola Dall'Asen 10 May 24, 2022
All-in-one Docker container that allows a user to explore Nautobot in a lab environment.

Nautobot Lab This container is not for production use! Nautobot Lab is an all-in-one Docker container that allows a user to quickly get an instance of

Nautobot 29 Sep 16, 2022
Some pvbatch (paraview) scripts for postprocessing OpenFOAM data

pvbatchForFoam Some pvbatch (paraview) scripts for postprocessing OpenFOAM data For every script there is a help message available: pvbatch pv_state_s

Morev Ilya 2 Oct 26, 2022
Current state of supervised and unsupervised depth completion methods

Awesome Depth Completion Table of Contents About Sparse-to-Dense Depth Completion Current State of Depth Completion Unsupervised VOID Benchmark Superv

224 Dec 28, 2022
Codes for "CSDI: Conditional Score-based Diffusion Models for Probabilistic Time Series Imputation"

CSDI This is the github repository for the NeurIPS 2021 paper "CSDI: Conditional Score-based Diffusion Models for Probabilistic Time Series Imputation

106 Jan 04, 2023