electronics.SEからのこの質問に触発されて、ここにあなたのための挑戦があります:
既存の音声合成ツールを使用せずに、一連の10進数(0〜9)を取り込んで声に出して話すプログラムまたはサブルーチンを作成します。
入力:
入力数字は、ASCII数字の文字列、整数の配列、BCDでエンコードされた数字など、合理的な形式で提供されるように要求できます。ソリューションが実行可能プログラムである場合、入力をコマンドラインパラメーター、標準入力から読み取る、またはその他の合理的な方法で取得します。
プログラムは、呼び出しごとに少なくとも8桁を話せる必要があります。あなたはあり、それが唯一の数字でない限り、最初の桁は、ゼロではないことを前提としています。
出力:
プログラムは、オーディオデバイスを使用して番号を直接話すか、再生可能なサウンドファイルを出力する場合があります。出力ファイルがある場合は、標準のオーディオ形式であるか、生のサンプルデータで構成されている場合があります。生のサンプルデータを出力する場合は、再生に適したパラメーター(サンプルレート、サンプルあたりのビット数、エンディアンネス、符号付き/符号なし、チャンネル数)に注意してください。aplayでサポートされている形式が推奨されます。
数字の読み方の詳細は自由に決めることができますが、出力は、典型的な英語話者が理解できる方法で話された英語の数字で構成する必要があり、リスナーが正確に文字起こしできるように十分明確にする必要があります話されている8桁の乱数。いいえ、ビープ音をn回鳴らすだけではカウントされません。数字の間に一時停止を含めることを忘れないでください。
得点:
標準のコードゴルフスコアリングルールが適用されます。スコアは、コードの長さ(バイト単位)、またはコードがUnicodeテキストで記述されている場合はUnicode文字です。最低スコアが勝ちます。すべての言語が行きます。
Electronics.SEの最初の質問は組み込みプログラミングに関するものであったため、低レベル言語を使用して作成者に骨を投げるのが適切だと感じました。ソリューションがコンパイルされた言語で記述されている場合、スコアとしてバイト単位でコンパイルされた実行可能ファイル。(はい、Java .class
ファイルなどのプリコンパイルされたバイトコードでも構いません。)このオプションを使用することを選択した場合は、ソースコードと一緒にコンパイル済み実行可能ファイルのコピーを(たとえば、16進ダンプとして)回答に含めてくださいそして、生成に使用したコンパイラのバージョンとオプション。
佳作は、50担当者の恵みとともに、またの基準に適合していることを最初の答えに付与されます元の質問を、すなわち、フラッシュの4キロバイトとSRAMの1キロバイトを埋め込んだMCU上で実行することが可能です。
制限事項:
上記のファイルまたはリソースの長さをスコアの一部としてカウントしない限り、選択した言語の標準ランタイム環境の一部ではないファイルまたはネットワークリソースを使用することはできません。(これは、Webからのオーディオサンプルの読み込みなどを禁止するためです。)
選択した言語の標準ランタイム環境に含まれている場合でも、既存の音声合成ツールやライブラリ、またはオーディオデータのコンパイルを使用することはできません(サイズをスコアの一部としてカウントしない限り)。