Нужны идеи для алгоритма, который генерирует «эхо-текст» из заданного ввода - PullRequest
1 голос
/ 21 декабря 2009

После некоторого веселья в чате на определенном веб-сайте у меня появилась интересная идея. Что бы был алгоритм, который, учитывая некоторый входной текст, генерировал бы «эхо» текст из него. То есть он генерирует эхо, которое вы услышите, если прокричите входной текст в большой пустой пещере. Например:

Input text: Hello!
Output text: Hello!
             ello!
             lo!
             o!

Проблема в том, что я сам не знаю, чего хочу. Я понятия не имею, как создать такой алгоритм или какие критерии можно было бы определить, является ли он хорошим алгоритмом. Но я полагаю, что общая идея ясна, поэтому я хотел бы услышать ваши мысли.

Вам не нужно давать полное решение в ваших ответах. Также намеки на направление или просто случайные мысли о проблеме тоже приветствуются.

Ответы [ 2 ]

3 голосов
/ 21 декабря 2009

Плохое, но веселое (имо) решение:

Запустите ввод через синтезатор речи, чтобы сгенерировать сигнал. Запустите этот сигнал через генератор эха в библиотеке обработки звука. Затем запустите полученный сигнал через программу распознавания речи.

1 голос
/ 21 декабря 2009

Вы могли бы создать массив символов, а затем выполнять операции со списком символов, используя разные начальные точки для каждой итерации.

Например, в C #

string Mystring = "Is There an Echo in Here?";
        char[] charArray = Mystring.ToCharArray();
        int k = 0;
        string Echo = "";
        for (int i = 0; i < (charArray.Length / 3) + 1; i++)
        {
            for (int j = k; i < charArray.Length; i++)
            {
                Echo += charArray[j];
            }
            Echo += Environment.NewLine;
            k += 3;
        }

Должен выдать что-то вроде этого
Здесь есть эхо?
здесь эхо?
эхо здесь?
эхо здесь?
Эхо здесь?
Здесь?
здесь?
прежде чем?
?

Только один из возможных способов, и вы можете поиграться со значениями, чтобы изменить эффект эха.

Другое решение - разделить строку словами, а не символами

string Mystring = "Is There an Echo in Here?";
        string[] Words = Mystring.Split(' ');
        int k = 0;
        string Echo = "";
        for (int i = 0; i < Words.Length / 2; i++)
        {
            for (int j = k; i < Mystring.Length; i++)
            {
                Echo += Mystring[j];
            }
            Echo += Environment.NewLine;
            k += 2;
        }

Будет производить следующее
Здесь есть эхо?
эхо здесь?
здесь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...