Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2018, 18:53   #1
Alex Kul
Пользователь
 
Аватар для Alex Kul
 
Регистрация: 15.10.2018
Сообщений: 45
По умолчанию Программирование азбуки морзе - Visual Basic 2010 я принял из эфира позывной сигнал азбукой морзе, а нужно озвучить код

Public Class Form1

КОММЕНТАРИЙ-Я РАДИОЛЮБИТЕЛЬ,ПРОГРАММА НАПИСАНА НА Visual Basic 2010. Я ПРИНЯЛ ИЗ ЭФИРА ПОЗЫВНОЙ СИГНАЛ, ПЕРЕДАННЫЙ АЗБУКОЙ МОРЗЕ (ПОЗЫВНОЙ СИГНАЛ ИМЕЕТ ПРИМЕРНЫЙ ВИД UA9FFG) ВЫ ВИДИТЕ ПРОГРАММУ, КОТОРАЯ ПООЧЕРЕДНО ВВОДИТ С НАЧАЛО 1 БУКВУ ИЛИ ЦИФРУ ПОЗЫВНОГО, ЗАТЕМ ВТОРУЮ БУКВУ ИЛИ ЦИФРУ И Т. Д … ТО ЕСТЬ 6 РАЗ МНЕ НЕОБХОДИМО ПООЧЕРЕДНО ВВОДИТЬ БУКВЫ ИЛИ ЦИФРЫ ПОЗЫВНОГО, НА ЭТО ЗАТРАЧИВАЕТСЯ ОЧЕНЬ МНОГО ВРЕМЕНИ.ПОСЛЕ ВВОДА ВСЕГО ПОЗЫВНОГО ПРОГРАММА ПРОИГРЫВАЕТ ЭТОТ ПОЗЫВНОЙ МЕЛОДИЕЙ МОРЗЕ. НА ДИСКЕ С:\ ЗАГОТОВЛЕНЫ СООТВЕТСТВУЮЩИЕ МЕЛОДИИ.ЭТО ВСЕ РАБОТАЕТ, ПРОБЛЕМ НЕТ. ПРОБЛЕМА В ТОМ, ЧТО ХОТЕЛОСЬ БЫ ОДИН РАЗ ЗАПИСАТЬ ПОЗЫВНОЙ СИГНАЛ (ТОЛЬКО НЕ 6 РАЗ, КАК У МЕНЯ) И ПРОГРАММА ТАКЖЕ ПРОИГРАЛА БЫ МЕЛОДИИ ВСЕГО ПОЗЫВНОГО.

Код:
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        Dim a As String
        Dim b As String
        Dim c As String
        Dim d As String
        Dim e As String
        Dim k As String

        a = InputBox("Задайте 1 букву или цифру позывного")
        b = InputBox("Задайте 2 букву или цифру позывного ")
        c = InputBox("Задайте 3 букву или цифру позывного ")
        d = InputBox("Задайте 4 букву или цифру позывного ")
        e = InputBox("Задайте 5 букву или цифру позывного ")
        k = InputBox("Задайте 6 букву или цифру позывного ")


        
        If a = "1" Then My.Computer.Audio.Play("C:\1.wav",
                     AudioPlayMode.WaitToComplete)
        If a = "2" Then My.Computer.Audio.Play("C:\2.wav",
                      AudioPlayMode.WaitToComplete)
        If a = "3" Then My.Computer.Audio.Play("C:\3.wav",
                      AudioPlayMode.WaitToComplete)
        If a = "4" Then My.Computer.Audio.Play("C:\4.wav",
                      AudioPlayMode.WaitToComplete)
        If a = "5" Then My.Computer.Audio.Play("C:\5.wav",
                      AudioPlayMode.WaitToComplete)

        If a = "6" Then My.Computer.Audio.Play("C:\6.wav",
                      AudioPlayMode.WaitToComplete)

        If a = "7" Then My.Computer.Audio.Play("C:\7.wav",
                      AudioPlayMode.WaitToComplete)

        If a = "8" Then My.Computer.Audio.Play("C:\8.wav",
                      AudioPlayMode.WaitToComplete)
        If a = "9" Then My.Computer.Audio.Play("C:\9.wav",
                      AudioPlayMode.WaitToComplete)

        If a = "0" Then My.Computer.Audio.Play("C:\0.wav",
                      AudioPlayMode.WaitToComplete)
        If  a = "Q" Then My.Computer.Audio.Play("C:\Q.wav",
                      AudioPlayMode.WaitToComplete)
        If  a = "W" Then My.Computer.Audio.Play("C:\W.wav",
                      AudioPlayMode.WaitToComplete)

КОММЕНТАРИЙ-СТРОКА ТИПА If  a = "W" Then My.Computer.Audio.Play("C:\W.wav",
                      AudioPlayMode.WaitToComplete)ПОВТОРЯЕТСЯ МНОГО РАЗ И ВМЕСТО "W" СТАВИТСЯ ДРУГАЯ БУКВА ЛАТИНСКОГО АЛФАВИТА, Т.Е. ПЕРЕЧИСЛЯЕТСЯ ВЕСЬ АЛФАВИТ, СЛЕДУЮЩАЯ СТРОКА ВЫГЛЯДИТ ТАК        If  a = "E" Then My.Computer.Audio.Play("C:\E.wav",
                      AudioPlayMode.WaitToComplete)

КОГДА ЗАКОНЧИТЬСЯ ВЕСЬ АЛФАВИТ ПРОГРАММА ПРИНИМАЕТ СЛЕДУЮЩИЙ ВИД

        If b = "1" Then My.Computer.Audio.Play("C:\1.wav",
                     AudioPlayMode.WaitToComplete)
        If b = "2" Then My.Computer.Audio.Play("C:\2.wav",
                      AudioPlayMode.WaitToComplete)
        If b = "3" Then My.Computer.Audio.Play("C:\3.wav",
                      AudioPlayMode.WaitToComplete)
        If b = "4" Then My.Computer.Audio.Play("C:\4.wav",
                      AudioPlayMode.WaitToComplete)
        If b = "5" Then My.Computer.Audio.Play("C:\5.wav",
                      AudioPlayMode.WaitToComplete)

        If b = "6" Then My.Computer.Audio.Play("C:\6.wav",
                      AudioPlayMode.WaitToComplete)

        If b = "7" Then My.Computer.Audio.Play("C:\7.wav",
                      AudioPlayMode.WaitToComplete)

        If b = "8" Then My.Computer.Audio.Play("C:\8.wav",
                      AudioPlayMode.WaitToComplete)
        If b = "9" Then My.Computer.Audio.Play("C:\9.wav",
                      AudioPlayMode.WaitToComplete)

        If b = "0" Then My.Computer.Audio.Play("C:\0.wav",
                      AudioPlayMode.WaitToComplete)
        If  b = "Q" Then My.Computer.Audio.Play("C:\Q.wav",
                      AudioPlayMode.WaitToComplete)
        If  b = "W" Then My.Computer.Audio.Play("C:\W.wav",
                      AudioPlayMode.WaitToComplete)
КОММЕНТАРИЙ-СТРОКА ТИПА If  b = "W" Then My.Computer.Audio.Play("C:\W.wav",
                      AudioPlayMode.WaitToComplete)ПОВТОРЯЕТСЯ МНОГО РАЗ И ВМЕСТО "W" СТАВИТСЯ ДРУГАЯ БУКВА ЛАТИНСКОГО АЛФАВИТА, Т. Е. ПЕРЕЧИСЛЯЕТСЯ ВЕСЬ АЛФАВИТ, СЛЕДУЮЩАЯ СТРОКА ВЫГЛЯДИТ ТАК        If  b = "E" Then My.Computer.Audio.Play("C:\E.wav",
                      AudioPlayMode.WaitToComplete)

КОММЕНТАРИЙ-затем ЗАТЕМ ПРОГРАММА повторяется  с буквой c,d,e,k
 
End Sub
End Class
Я НЕ ЗНАЮ ДОХОДЧИВО ЛИ Я ОБЪЯСНИЛ УСЛОВИЕ ЗАДАЧИ, ЕСЛИ НЕ ПОНЯТНО, ПЕРЕСПРОСИТЕ, ХОТЕЛОСЬ БЫ ИМЕТЬ ТАКУЮ ПРОГРАММУ. Alex.

______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 15.10.2018 в 19:08.
Alex Kul вне форума Ответить с цитированием
Старый 15.10.2018, 19:06   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

РАДИОЛЮБИТЕЛЬ, ЗАЧЕМ ТАК КРИЧАТЬ?

В интернете и нормальные буквы без помех доходят )
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 15.10.2018, 19:29   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,218
По умолчанию

Alex Kul, если в программировании вы не особо понимаете и хотите готовую программу - обратитесь в раздел Фриланс, где вам за вознаграждение напишут такую программу. Ну или сразу ко мне, адрес в подписи, напишу без проблем.
Arigato вне форума Ответить с цитированием
Старый 15.10.2018, 22:26   #4
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

Цитата:
Сообщение от Alex Kul Посмотреть сообщение
ХОТЕЛОСЬ БЫ ИМЕТЬ ТАКУЮ ПРОГРАММУ.
Дарю!
Всего 36 Кб, ни каких звуковых файлов не надо, генерирует на лету.
Вложения
Тип файла: zip MorseCod.zip (17.8 Кб, 18 просмотров)
kvitaliy вне форума Ответить с цитированием
Старый 16.10.2018, 06:44   #5
Alex Kul
Пользователь
 
Аватар для Alex Kul
 
Регистрация: 15.10.2018
Сообщений: 45
По умолчанию Visual Basic 2010

Доброе утро! Очень благодарен kvitaliy и всем кто откликнулся на мою просьбу за программу MorseCod , это очень хорошая программа и она мне очень пригодится (к сожалению буква "a" звучит по другому, если можно исправьте пожалуйста - наверное случайная описка).Извините меня пожалуйста, но мне хотелось бы, чтобы звук проходил из файла. Поясню. Я надеюсь записать звуковые файлы сам, например в формате wav и заменить их. Например набираю (пишу) позывной сигнал, а программа моим голосом говорит эти буквы на английском языке (для проведения радио связей используется как и телеграф, так и SSB-микрофоном). Помогите пожалуйста очень надо...Alex.

Последний раз редактировалось Alex Kul; 16.10.2018 в 06:52.
Alex Kul вне форума Ответить с цитированием
Старый 16.10.2018, 08:47   #6
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

Цитата:
Сообщение от Alex Kul Посмотреть сообщение
к сожалению буква "a" звучит по другому
Код этой программы был написан давно, и скорее всего коды Морзе взяты из какого то компетентного источника:
Код:
morseCode$("a") = ".-"
  morseCode$("b") = "-..."
  morseCode$("c") = "-.-."
  morseCode$("d") = "-.."
  morseCode$("e") = "."
  morseCode$("f") = "..-."
  morseCode$("g") = "--."
  morseCode$("h") = "...."
  morseCode$("i") = ".."
  morseCode$("j") = ".---"
  morseCode$("k") = "-.-"
  morseCode$("l") = ".-.."
  morseCode$("m") = "--"
  morseCode$("n") = "-."
  morseCode$("o") = "---"
  morseCode$("p") = ".--."
  morseCode$("q") = "--.-"
  morseCode$("r") = ".-."
  morseCode$("s") = "..."
  morseCode$("t") = "-"
  morseCode$("u") = "..-"
  morseCode$("v") = "...-"
  morseCode$("w") = ".--"
  morseCode$("x") = "-..-"
  morseCode$("y") = "-.--"
  morseCode$("z") = "--.."
  morseCode$("0") = "-----"
  morseCode$("1") = ".----"
  morseCode$("2") = "..---"
  morseCode$("3") = "...--"
  morseCode$("4") = "....-"
  morseCode$("5") = "....."
  morseCode$("6") = "-...."
  morseCode$("7") = "--..."
  morseCode$("8") = "---.."
  morseCode$("9") = "----."
  morseCode$(".") = ".-.-.-"
  morseCode$(",") = "--..--"
  morseCode$("?") = "..--.."
  morseCode$("'") = ".----."
  morseCode$("!") = "-.-.--"
  morseCode$("/") = "-..-."
  morseCode$("(") = "-.--."
  morseCode$(")") = "-.--.-"
  morseCode$("&") = ".-..."
  morseCode$(":") = "---..."
  morseCode$(";") = "-.-.-."
  morseCode$("=") = "-...-"
  morseCode$("+") = ".-.-."
  morseCode$("-") = "-....-"
  morseCode$("_") = "..--.-"
Посмотрите опытным взглядом, может что то и не так?

Цитата:
Сообщение от Alex Kul Посмотреть сообщение
Например набираю (пишу) позывной сигнал, а программа моим голосом говорит эти буквы на английском языке (для проведения радио связей используется как и телеграф, так и SSB-микрофоном).
Сомневаюсь я, что эта хорошая затея. Результат может разочаровать - скорее всего символы при чтении позывного как то отличаются по звучанию, чем отдельно стоящие символы? Если нет, то возможно. А что, принципиален именно Ваш голос? Есть же голосовые движки, которые могут читать различный текст. Это более универсально и менее затратно по размерам программы.
По поводу вашей программы, раз уже сами взялись за написание.
Оставьте только 1 InputBox
String = InputBox("Задайте позывной")
После разберите этот позывной на отдельные символы при помощи функции
Mid(String, Start[, Length])
Ну и дальше по вашему плану, на каждый символ проигрывайте свою "музыку"
kvitaliy вне форума Ответить с цитированием
Старый 16.10.2018, 09:14   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от kvitaliy Посмотреть сообщение
Посмотрите опытным взглядом, может что то и не так?
на мой неопытный взгляд программа не всегда воспроизводит то, что в массиве.
например, откуда взялась точка после буквы "o" ?!
morze1.png
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.10.2018, 11:42   #8
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

Цитата:
Сообщение от Alex Kul Посмотреть сообщение
к сожалению буква "a" звучит по другому
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
откуда взялась точка после буквы "o" ?!
Точно, был такой косяк.
Это в конце кода была приписка из национальных шрифтов, буквы в ASCII выглядят похоже на 'а' и 'о', а Морзе разные, вот и выдавало.
Исправил.
Добавил проговаривание голосом если есть в системе голосовой движок по умолчанию.
Вложения
Тип файла: zip MorseCod.zip (24.1 Кб, 12 просмотров)

Последний раз редактировалось kvitaliy; 16.10.2018 в 12:23.
kvitaliy вне форума Ответить с цитированием
Старый 16.10.2018, 12:09   #9
Alex Kul
Пользователь
 
Аватар для Alex Kul
 
Регистрация: 15.10.2018
Сообщений: 45
По умолчанию

Добрый день! И снова я. Еще раз большое спасибо kvitaliy. Исправленная программа работает и она мне очень нужна. Насчет других говорящих программ, многие испробовал, да не получается. Хотелось бы чтобы позывной сигнал произносился моим голосом (пусть каждая буква произносится отдельно, в сочетании получается нормально). Примером может служить программа AAVolce (только эта программа на 30 дней). Хотелось бы, чтобы программа работала по принципу который был предложен мною в начале (понимаю что мой вариант "лябуда" какая то, но главное для меня чтобы программа работала...). Что предлагаете Вы kvitaliy, я думаю Вы совершенно правы, но проблема как это сделать (еще раз повторюсь, структура немного понятна, да программист я "супер"). Если можно (мне очень стыдно Вас об этом просить) помогите пожалуйста хотя бы написать код на 2 буквы позывного сигнала, а остальное у меня может хватит ума по аналогии сделать).Если нужны звуковые файлы для проверки, скажите...Еще раз прошу извинения у всех присутствующих на форуме...Alex Kul.
Alex Kul вне форума Ответить с цитированием
Старый 16.10.2018, 12:27   #10
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

Цитата:
Сообщение от Alex Kul Посмотреть сообщение
многие испробовал, да не получается.
Попробуйте мой голосовой вариант, перезалил выше версию.
Помочь могу, нужны примеры wav файлов и ваш проект на VB2010, что там есть у вас.
kvitaliy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Азбука морзе в Visual С++ CORTESE Помощь студентам 4 03.02.2012 17:08
Дешифратор азбуки морзе Exibet179 Общие вопросы Delphi 11 24.12.2011 02:28
Лексический анализатор азбуки Морзе в виде конечного автомата MrBrain Помощь студентам 1 08.11.2010 10:23
Перевод текста в код Морзе (Delphi) pomoshnic Помощь студентам 6 21.03.2009 18:04