Inspiriert von dieser Frage von electronics.SE , ist hier eine Herausforderung für Sie:
Schreiben Sie ein Programm oder Unterprogramm, das eine Folge von Dezimalstellen (0 bis 9) einliest und diese laut ausspricht, ohne ein vorhandenes Sprachsynthesewerkzeug zu verwenden.
Eingang:
Sie können verlangen, dass die Eingabeziffern in einem angemessenen Format angegeben werden, z. B. als Zeichenfolge aus ASCII-Ziffern, als Array aus Ganzzahlen, als BCD-codierte Zahl usw. Wenn Ihre Lösung ein ausführbares Programm ist, können Sie die Eingabe als übernehmen einen Befehlszeilenparameter, lesen Sie ihn von der Standardeingabe oder rufen Sie ihn auf eine andere vernünftige Weise ab.
Ihr Programm muss mindestens acht Stellen pro Aufruf sprechen können . Sie können davon ausgehen, dass die erste Ziffer nicht Null ist, es sei denn, es ist die einzige Ziffer.
Ausgabe:
Ihr Programm kann die Nummern entweder direkt mit einem Audiogerät sprechen oder eine abspielbare Audiodatei ausgeben. Die Ausgabedatei kann, falls vorhanden, ein Standard-Audioformat haben oder aus Rohdaten bestehen. Wenn Sie Rohdaten ausgeben, beachten Sie bitte die entsprechenden Parameter für die Wiedergabe (Abtastrate, Bits pro Abtastung, Endian, Signed / Unsigned, Anzahl der Kanäle). Formate, die von aplay unterstützt werden, werden bevorzugt.
Sie können frei entscheiden, wie die Zahlen gesprochen werden sollen. Ihre Ausgabe sollte jedoch aus englischen Ziffern bestehen, die für einen typischen englischen Sprecher verständlich sind , und klar genug sein, damit der Hörer sie genau transkribieren kann eine gesprochene achtstellige Zufallszahl. Nein, nur n- mal piepen zählt nicht. Vergessen Sie nicht, Pausen zwischen den Ziffern einzufügen.
Wertung:
Es gelten die Standardregeln für die Code-Golf- Wertung: Ihre Wertung ist die Länge Ihres Codes in Bytes oder, wenn Ihr Code in Unicode-Text geschrieben ist, in Unicode-Zeichen. Die niedrigste Punktzahl gewinnt. Jede Sprache geht.
Da es sich bei der ursprünglichen Frage zu electronics.SE um Embedded-Programmierung handelte, erschien es mir angebracht, Autoren, die einfache Sprachen verwenden, einen Bone zuzuwerfen: Wenn Ihre Lösung in einer kompilierten Sprache geschrieben ist, können Sie die Länge von zählen kompilierte ausführbare Datei in Bytes als Ihre Punktzahl. (Ja, vorkompilierter Bytecode, z. B. eine Java- .class
Datei, ist ebenfalls in Ordnung.) Wenn Sie diese Option nutzen möchten, fügen Sie Ihrer Antwort eine Kopie der kompilierten ausführbaren Datei (z. B. als Hex-Dump) zusammen mit Ihrem Quellcode bei und die Compilerversion und die Optionen, die Sie zum Generieren verwendet haben.
Eine lobende Erwähnung , zusammen mit einer 50 rep Prämie wird auf die ersten Antwort erteilt wird , dass auch die Kriterien der trifft ursprünglichen Frage ist also fähig auf einem Embedded - MCU mit 4 kb von Flash und 1 kb von SRAM ausgeführt wird .
Beschränkungen:
Sie dürfen keine Dateien oder Netzwerkressourcen verwenden , die nicht Teil der Standardlaufzeitumgebung Ihrer Sprache sind, es sei denn, Sie zählen die Länge dieser Dateien oder Ressourcen als Teil Ihrer Punktzahl. (Dies ist zB zu verbieten, Audio-Samples aus dem Web zu laden.)
Sie dürfen auch keine bereits vorhandenen Sprachsynthesetools oder -bibliotheken oder Zusammenstellungen von Audiodaten verwenden (es sei denn, Sie zählen auch deren Größe als Teil Ihrer Partitur), selbst wenn diese in der Standardlaufzeitumgebung Ihrer gewählten Sprache enthalten sind.