Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.53/55: Рейтинг темы: голосов - 55, средняя оценка - 4.53
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1

Проект "Говорящий будильник"

22.02.2019, 20:36. Показов 12320. Ответов 162
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В следующем проекте я хочу сделать говорящие часы или будильник, как мне предложил уважаемый ValeryS.

Пока я на стадии обдумывания, как лучше записать и воспроизвести голос. Купить дешевые микрофон с динамиком и подсоединить к ADC и DAC соответственно ? Или как то записать голос на ноутбуке и как тогда подавать его на мою Nucleo-L152re плату ?

Одним словом, что посоветуете ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.02.2019, 20:36
Ответы с готовыми решениями:

Посоветуйте неглючный говорящий по-русски будильник
Уже перепробовал разные проги: DVBeep Pro (г глючное, недоработанное и непонятное), WakeVoice (на мой тел не устанавливается), Good Morning...

Говорящий ардуино
Здравствуйте. Делаю один проект и нужна помощь. Нужно реализовать проект, где ардуино управляется голосовыми командами и может отвечать...

Говорящий конь
Говорящий конь Юлий шел по дороге и встретил трех богатырей. — Здравствуй, богатырь номер 1,— сказал говорящий конь Юлий. — Здравствуй,...

162
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
21.04.2019, 21:07  [ТС]
Студворк — интернет-сервис помощи студентам
Спасибо.
0
Эксперт .NET
 Аватар для Rius
13399 / 7853 / 1700
Регистрация: 25.05.2015
Сообщений: 23,869
Записей в блоге: 14
21.04.2019, 21:08
И в Windows встроенное есть со времён Windows 3.0: https://en.wikipedia.org/wiki/... r_(Windows)
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
21.04.2019, 22:36  [ТС]
Спасибо...

Кстати, вопрос. Записал .wav- файл и решил вывести его содержимоена экран ввиде 16-ричных чисел. Так у меня выводит сплошные нули. Это изза того, что формат файла little endian ? А в обычных компах используется по умолчанию big endian? Я правильно это понял ?
0
Эксперт .NET
 Аватар для Rius
13399 / 7853 / 1700
Регистрация: 25.05.2015
Сообщений: 23,869
Записей в блоге: 14
21.04.2019, 22:42
Формат файла должен не зависеть от endian системы.
Нулей может быть много, т.к. выбран формат без сжатия, вероятно. Если ваша запись из файла воспроизводится нормально, значит где-то есть и не-нули.

Добавлено через 1 минуту
Цитата Сообщение от max_sk Посмотреть сообщение
Проигрывать его через PWM или через DAC ?
Проект "Говорящий будильник"
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
21.04.2019, 22:49  [ТС]
По вот этой ссылке http://soundfile.sapp.org/doc/WaveFormat/ пишут следующее :

The default byte ordering assumed for WAVE data files is little-endian.

Значит, все таки зависит ?
0
Эксперт .NET
 Аватар для Rius
13399 / 7853 / 1700
Регистрация: 25.05.2015
Сообщений: 23,869
Записей в блоге: 14
21.04.2019, 22:58
Это значит, что в файле формат какой-то выбран. И вы его, когда читаете, должны учитывать, чтобы считать правильно. Независимо от того, на какой системе компилируется/выполняется код.
Цитата Сообщение от max_sk Посмотреть сообщение
А в обычных компах используется по умолчанию big endian? Я правильно это понял ?
Нет. "Обычно используется" и "процессор такой-то" - не 100% совпадают. В одном софте один порядок, в другом другой, и на endianess процессора пофиг, потому что порядок тот используется в формате данных, предназначенном для обмена вообще между разными архитектурами.
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
23.04.2019, 09:24  [ТС]
В wav-файле есть поля в big endian- порядке, и есть поля в little endian- порядке. Возникает вопрос - как правильно перевести из little endian в big endian ? Побайтово или побитно ?

Другими словами число в little endian 0x12345678 в big endian будет 0x87654321 ? Или 0x78563412 ?
0
Эксперт .NET
 Аватар для Rius
13399 / 7853 / 1700
Регистрация: 25.05.2015
Сообщений: 23,869
Записей в блоге: 14
23.04.2019, 09:35
Переставляются байты, не биты.
0
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
23.04.2019, 20:01  [ТС]
Хммм… DAC в моем Nucleo работает либо с 12-тью битами за семпл, либо с 8-ю. У меня же WAV-файл записался с 16-ю битами за семпл. Интересно, можно ли записать WAV-файл на Audacity c 8-ю битами за семпл ? Сейчас буду разбираться...
0
Эксперт .NET
 Аватар для Rius
13399 / 7853 / 1700
Регистрация: 25.05.2015
Сообщений: 23,869
Записей в блоге: 14
23.04.2019, 20:05
А при чтении файла с флешки преобразовать разрядность данных нельзя?
1
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
23.04.2019, 20:08
Цитата Сообщение от max_sk Посмотреть сообщение
У меня же WAV-файл записался с 16-ю битами за семпл.
бери старшие байты вот и будет 8 байтная кодировка, для речи за глаза
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
23.04.2019, 20:47  [ТС]
ValeryS, спасибо ! Надеюсь, получится...
0
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
01.05.2019, 19:55  [ТС]
Завтра получаю очередную посылку. И возвращаюсь к проекту.
0
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
03.05.2019, 15:40  [ТС]
Здравствуйте !

Подскажите, динамик для музыкальной открытки с параметрами 0.5 Ватт и 8 Ом годится, чтобы проигрывать голос ? Или надо покупать колонки ?
0
Эксперт по электронике
7149 / 3328 / 342
Регистрация: 28.10.2011
Сообщений: 13,135
Записей в блоге: 7
03.05.2019, 19:23
Цитата Сообщение от max_sk Посмотреть сообщение
динамик для музыкальной открытки с параметрами 0.5 Ватт и 8 Ом годится, чтобы проигрывать голос ?
Годится, только не очень громко.
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
04.05.2019, 23:52  [ТС]
Добился промежуточного результата - записал на флешку текстовые файлы для часов, минут и секунд и вывожу время RTC на экран, считывая данные из этих файлов. Так, например, чтобы показать время 18:06:29 считываются файлы 18h.txt, 06m.txt и 29s.txt.

Следующий шаг - заменить txt-файлы на wav-файлы и проигрывать звук с них. Это самое сложное. Если сделаю - проект будет закончен.
0
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
07.05.2019, 21:39  [ТС]
Здравствуйте !

Подскажите, почему при таком коде получается звук пердежа ( извиняюсь за выражение ), а не голос ?

Я читаю wav-файл, который не был сжат, DataChunk начинается с 44-го байта. Частота на APB1 равна 32МГц, ByteRate равен 16000, поэтому на DAC'e выставил триггер от 6-го таймера и ему указал Counter Period=249, а Prescaler=0. Режим записи был выбран моно, но 16-битный, поэтому озвучиваю только старшие байты.

Еще сделал функцию LittleToBig(), которая перед озвучиванием переводит буфер из формата little endian в big endian

Вот мой код :

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
FRESULT SoundWAVFile(void) 
{ 
  uint16_t i1=0; 
  uint32_t ind=0; 
  uint32_t f_size = MyFile.fsize;
  int i=0, total=0;
  ind=0;
  
  //HAL_TIM_Base_Start(&htim6);  
  HAL_DAC_Start(&hdac,DAC_CHANNEL_1);
   
  do{ 
    memset(sect,0x00,sizeof(sect));
  
    if(f_size<512){ 
      i1=f_size; 
    }else{ 
      i1=512; 
    } 
    f_size-=i1; 
    f_lseek(&MyFile,ind); 
    f_read(&MyFile,sect,i1,(UINT *)&bytesread);
    
    LittleToBig(sect,(int)bytesread);
    
    for(i=0; i<bytesread; i+=2){
        if( i<22 && ind==0 ){ // DataChunk starts from 44-th byte
            
        }else{
            HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1,DAC_ALIGN_12B_R,(uint32_t)sect[i]); 
            DelayNano(7813); 
        }
    } 
    ind+=i1;
    
    //HAL_DAC_Start_DMA(&hdac, DAC_CHANNEL_1, (uint32_t*)SoundBuffer, total-1, DAC_ALIGN_12B_R);
  }while(f_size>0); 
  
  
  
  
  return FR_OK; 
}
Добавлено через 3 минуты
Да, 9-ю строчку кода я раскомментировал, а 31-ю наоборот, закомментировал. Поэтому таймер включен, триггер должен работать и задержки после 30-й строки нет.
0
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
08.05.2019, 15:06  [ТС]
Переделал код. Теперь нет звука на колонках. Либо это провода, либо нет пульса на TIM6.

В связи с этим вопрос. Можно ли как то вывести пульс от TIM6 и PCLK, чтобы проверить на анализаторе, что они есть ?
0
Эксперт по электронике
7149 / 3328 / 342
Регистрация: 28.10.2011
Сообщений: 13,135
Записей в блоге: 7
08.05.2019, 18:57
Сложно наверно без отладчика...
1
92 / 19 / 4
Регистрация: 11.04.2015
Сообщений: 1,019
Записей в блоге: 1
08.05.2019, 21:18  [ТС]
Ок. Тогда вопрос - что такое отладчик ?

Я отслеживаю свои ошибки в анализаторе и в среде разработки ( пошаговое тестирование, брекпоинты и т.д. ). Есть еще какое то дополнительное устройство, которое называется отладчик ?

Кстати, в Кубе, на каждой лапке процессора, задан EVENTOUT. Что это такое и для чего нужен ? Может мне сгодится отследить TIM6 ?

Добавлено через 3 минуты
Закончил RTC. Осталось только научиться озвучивать правильно wav-файлы и проект будет готов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.05.2019, 21:18

Создать будильник или "завести" системный будильник
Вопрос заключается в следущем: мне нужно &quot;завести&quot; или сделать будильник на unity, подходит ли для этого unity?

"Говорящий Яндекс-Словари"
Теперь не обязательно врубаться в транскрипцию произношения иностранного слова, которое находится через Словари. Яндекс научился их...

Англоязычный форум. Живой и говорящий!
Привет, форумчанам. Сейчас у меня такая проблема: чтобы поддерживать уровень английского в актуальном состоянии, т.к. книги книгам, а...

Как сделать говорящий блокнот
Можете привести пример говорящего блокнота.Он отключает клаву и мышь.И пишит ерунду в блокноте.После того как он всё напишит клава и мышь...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Новые блоги и статьи
Хабру пора сливаться, время пришло, оно прийдёт за всеми, но ему давно пора (Хабр - галимый плагиат и кликбейт с саморекламой).
Hrethgir 04.08.2026
Стирают публикации с эффективными алгоритмами (в частности по алгоритму обхода дерева, был опубликован там 3-го мая, в зипапке . . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru