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!

Defending against Model Stealing via Verifying Embedded External Features

Defending against Model Stealing Attacks via Verifying Embedded External Features This is the official implementation of our paper Defending against M

20 Dec 30, 2022
Code for "NeRS: Neural Reflectance Surfaces for Sparse-View 3D Reconstruction in the Wild," in NeurIPS 2021

Code for Neural Reflectance Surfaces (NeRS) [arXiv] [Project Page] [Colab Demo] [Bibtex] This repo contains the code for NeRS: Neural Reflectance Surf

Jason Y. Zhang 234 Dec 30, 2022
3D-Transformer: Molecular Representation with Transformer in 3D Space

3D-Transformer: Molecular Representation with Transformer in 3D Space

55 Dec 19, 2022
Continual learning with sketched Jacobian approximations

Continual learning with sketched Jacobian approximations This repository contains the code for reproducing figures and results in the paper ``Provable

Machine Learning and Information Processing Laboratory 1 Jun 30, 2022
African language Speech Recognition - Speech-to-Text

Swahili-Speech-To-Text Table of Contents Swahili-Speech-To-Text Overview Scenario Approach Project Structure data: models: notebooks: scripts tests: l

2 Jan 05, 2023
Source Code of NeurIPS21 paper: Recognizing Vector Graphics without Rasterization

YOLaT-VectorGraphicsRecognition This repository is the official PyTorch implementation of our NeurIPS-2021 paper: Recognizing Vector Graphics without

Microsoft 49 Dec 20, 2022
Vehicle speed detection with python

Vehicle-speed-detection In the project simulate the tracker.py first then simulate the SpeedDetector.py. Finally, a new window pops up and the output

3 Dec 15, 2022
The source code for the Cutoff data augmentation approach proposed in this paper: "A Simple but Tough-to-Beat Data Augmentation Approach for Natural Language Understanding and Generation".

Cutoff: A Simple Data Augmentation Approach for Natural Language This repository contains source code necessary to reproduce the results presented in

Dinghan Shen 49 Dec 22, 2022
Recreate CenternetV2 based on MMDET.

Introduction This project is trying to Recreate CenternetV2 based on MMDET, which is proposed in paper Probabilistic two-stage detection. This project

25 Dec 09, 2022
Direct Multi-view Multi-person 3D Human Pose Estimation

Implementation of NeurIPS-2021 paper: Direct Multi-view Multi-person 3D Human Pose Estimation [paper] [video-YouTube, video-Bilibili] [slides] This is

Sea AI Lab 251 Dec 30, 2022
Single object tracking and segmentation.

Single/Multiple Object Tracking and Segmentation Codes and comparison of recent single/multiple object tracking and segmentation. News 💥 AutoMatch is

ZP ZHANG 385 Jan 02, 2023
Code for Multinomial Diffusion

Code for Multinomial Diffusion Abstract Generative flows and diffusion models have been predominantly trained on ordinal data, for example natural ima

104 Jan 04, 2023
Explaining Deep Neural Networks - A comparison of different CAM methods based on an insect data set

Explaining Deep Neural Networks - A comparison of different CAM methods based on an insect data set This is the repository for the Deep Learning proje

Robert Krug 3 Feb 06, 2022
TAUFE: Task-Agnostic Undesirable Feature DeactivationUsing Out-of-Distribution Data

A deep neural network (DNN) has achieved great success in many machine learning tasks by virtue of its high expressive power. However, its prediction can be easily biased to undesirable features, whi

KAIST Data Mining Lab 8 Dec 07, 2022
pytorch implementation of Attention is all you need

A Pytorch Implementation of the Transformer: Attention Is All You Need Our implementation is largely based on Tensorflow implementation Requirements N

230 Dec 07, 2022
Ranking Models in Unlabeled New Environments (iccv21)

Ranking Models in Unlabeled New Environments Prerequisites This code uses the following libraries Python 3.7 NumPy PyTorch 1.7.0 + torchivision 0.8.1

14 Dec 17, 2021
Simple machine learning library / 簡單易用的機器學習套件

FukuML Simple machine learning library / 簡單易用的機器學習套件 Installation $ pip install FukuML Tutorial Lesson 1: Perceptron Binary Classification Learning Al

Fukuball Lin 279 Sep 15, 2022
Differentiable Prompt Makes Pre-trained Language Models Better Few-shot Learners

DART Implementation for ICLR2022 paper Differentiable Prompt Makes Pre-trained Language Models Better Few-shot Learners. Environment

ZJUNLP 83 Dec 27, 2022
A New Approach to Overgenerating and Scoring Abstractive Summaries

We provide the source code for the paper "A New Approach to Overgenerating and Scoring Abstractive Summaries" accepted at NAACL'21. If you find the code useful, please cite the following paper.

Kaiqiang Song 4 Apr 03, 2022
Construct a neural network frame by Numpy

本项目的CSDN博客链接:https://blog.csdn.net/weixin_41578567/article/details/111482022 1. 概览 本项目主要用于神经网络的学习,通过基于numpy的实现,了解神经网络底层前向传播、反向传播以及各类优化器的原理。 该项目目前已实现的功

24 Jan 22, 2022