Сеско
Пн 11 июля 2016 г., 4:06 утра
Я попытался скомпилировать вокаду (MELP) для STM32, Blue Poard, 32F103. Я использовал источник Melp Vovcoder, старые вещи, должен быть вне авторского права уже. И это хорошо. Он может кодировать голос в битовый поток 2400bps.
Но я провалился. MELP, кажется, нуждается в 30 КБ ОЗУ, в то время как F103 проводит только 8 КБ. Есть ли доска Cheapo Ans с 32 -километровой оперативной памятью, как синяя доска?
Но я провалился. MELP, кажется, нуждается в 30 КБ ОЗУ, в то время как F103 проводит только 8 КБ. Есть ли доска Cheapo Ans с 32 -километровой оперативной памятью, как синяя доска?
Пито
Пн 11 июля 2016 г., 6:08
Blue Board и Mmini предлагают 20 КБ ОЗУ..
Сеско
Пн 11 июля 2016 г., 7:49
О, ты прав. ОЗУ переполнен 8 КБ. Если я включите как кодер, так и декодер, это 11 кб.
Действительно мне помогает, мне все еще нужно больше оперативной памяти или кто -то, чтобы хрустить коды.
Он хранит коэффициенты в 32 -битном int или float, даже в образцах голоса, но изменение этого будет тяжело.
------------
Arduino: 1.6.3 (Windows 7), плата: «Generic STM32F103C Series, STM32F103C8 (20K ОЗУ. 64K Flash), STM32Duino Bootloader "
C:/users/i7-4790/appdata/roaming/arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.Exe: C: \ users \ i7-4790 \ appdata \ local \ temp \ build1072652885461977077.TMP/MELP.CPP.Эльфийский раздел `.Данные 'не вписываются в регион "ОЗУ'
C:/users/i7-4790/appdata/roaming/arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.Exe: область «ОЗУ», переполненная 8216 байтами
COLLECT2.EXE: Ошибка: LD вернул 1 статус выхода
Ошибка компиляции.
------------
Действительно мне помогает, мне все еще нужно больше оперативной памяти или кто -то, чтобы хрустить коды.
Он хранит коэффициенты в 32 -битном int или float, даже в образцах голоса, но изменение этого будет тяжело.
------------
Arduino: 1.6.3 (Windows 7), плата: «Generic STM32F103C Series, STM32F103C8 (20K ОЗУ. 64K Flash), STM32Duino Bootloader "
C:/users/i7-4790/appdata/roaming/arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.Exe: C: \ users \ i7-4790 \ appdata \ local \ temp \ build1072652885461977077.TMP/MELP.CPP.Эльфийский раздел `.Данные 'не вписываются в регион "ОЗУ'
C:/users/i7-4790/appdata/roaming/arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.Exe: область «ОЗУ», переполненная 8216 байтами
COLLECT2.EXE: Ошибка: LD вернул 1 статус выхода
Ошибка компиляции.
------------
Ахулл
Пн 11 июля 2016 г., 9:59
У вас есть какой -нибудь исходный код, на который мы можем посмотреть?
Учитывая относительно низкую пропускную способность, вы можете использовать внешний флеш -чип для буферизации
Использование 8 -битных, а не 32 -битных образцов также может работать, как и может уменьшить размер буфера, но без какого -либо кода, на который можно посмотреть, я не могу сказать.
Вы также можете попробовать запустить код на ESP8266, так как у них должно быть больше ОЗУ.
Учитывая относительно низкую пропускную способность, вы можете использовать внешний флеш -чип для буферизации
Использование 8 -битных, а не 32 -битных образцов также может работать, как и может уменьшить размер буфера, но без какого -либо кода, на который можно посмотреть, я не могу сказать.
Вы также можете попробовать запустить код на ESP8266, так как у них должно быть больше ОЗУ.
Сеско
Пн 11 июля 2016 г. 12:16
Это (с небольшими изменениями для компиляции с Arduino):
https: // github.com/arash-ostadzadeh/qua ... KS/MELP1.2
Я использовал кодек раньше. С 1993-1995, TI, разработка, выплачиваемая США. Отличный код. Намного лучше, чем то, что я могу сделать и понять. Не недооценивайте MELP только потому, что старый.
Я уменьшил размер до 17 КБ ОЗУ, изменив 2 таблицы с Float на INT16. Одна таблица не является проблемой, но другой должен быть масштабирован. Я постараюсь проверить его на своем Arduino Due (больше оперативной памяти), но сначала мне нужен код DA и AD 8 кГц, и мне нужно аппаратное обеспечение микрофона и динамика, а также какой -то способ хранения закодированной речи.
https: // github.com/arash-ostadzadeh/qua ... KS/MELP1.2
Я использовал кодек раньше. С 1993-1995, TI, разработка, выплачиваемая США. Отличный код. Намного лучше, чем то, что я могу сделать и понять. Не недооценивайте MELP только потому, что старый.
Я уменьшил размер до 17 КБ ОЗУ, изменив 2 таблицы с Float на INT16. Одна таблица не является проблемой, но другой должен быть масштабирован. Я постараюсь проверить его на своем Arduino Due (больше оперативной памяти), но сначала мне нужен код DA и AD 8 кГц, и мне нужно аппаратное обеспечение микрофона и динамика, а также какой -то способ хранения закодированной речи.
Mrburnette
Пн 11 июля 2016 г., 13:13
Список досок STM32 и SRAM http: // wiki.STM32duino.com/index.PHP?тип ... 103_boards
Звучит так, как будто можно использовать ESP8266 (без Wi -Fi) на 160 МГц. Много шрама
Короткая статья здесь
Луча
Звучит так, как будто можно использовать ESP8266 (без Wi -Fi) на 160 МГц. Много шрама
Короткая статья здесь
Луча
Рик Кимбалл
Пн 11 июля 2016 г. 13:18
Забавно, этот код должен быть старым. Я смотрел на Makefile и вижу цель очищения. Это то, что я использовал ежедневно в середине 90 -х годов. Если они использовали очистку и отвечали на свои предупреждения, то код будет довольно чистым и без утечки.
http: // web.Стэнфорд.edu/class/cs343/res ... очищать.PDF
https: // en.Википедия.org/wiki/rational_purify
-рик
http: // web.Стэнфорд.edu/class/cs343/res ... очищать.PDF
https: // en.Википедия.org/wiki/rational_purify
-рик
Mrburnette
Пн 11 июля 2016 г., 13:21
Рик Кимбалл написал:
-рик
Рик Кимбалл
Пн 11 июля 2016 г. 13:50
Так как это работает? Я пытался
$ ./melp -i вход/образец.PCM -O -образец.Bitfile
образец.BitFile не был очень маленьким. Я ожидал, что это уменьшится.
Какова скорость дискретизации ввода/образца.PCM ? Я пропустил это где -нибудь в документах? Похоже, 8 тысяч работает хорошо.
-рик
$ ./melp -i вход/образец.PCM -O -образец.Bitfile
образец.BitFile не был очень маленьким. Я ожидал, что это уменьшится.
Какова скорость дискретизации ввода/образца.PCM ? Я пропустил это где -нибудь в документах? Похоже, 8 тысяч работает хорошо.
-рик
Рик Кимбалл
Пн 11 июля 2016 г. 14:00
Кажется, что этот код широко использует динамическую память. Даже если бы вы могли снизить количество статического оперативного операции, мне интересно, сколько памяти на самом деле выделяется.
[Редактировать: я прикрепил выход valgrind -tool = massif]
Похоже, что он использовал +5 тысяч с образцом.PCM -файл
[Редактировать: я прикрепил выход valgrind -tool = massif]
Похоже, что он использовал +5 тысяч с образцом.PCM -файл
- массив.текст
- (22.98 киб) скачано 47 раз
Рик Кимбалл
Пн 11 июля 2016 г. 14:38
Кстати: это может быть идеально связано с Raspberry Pi Zero. Код будет просто скомпилироваться как есть.
Сеско
Пн 11 июля 2016 г. 14:46
Вход энкодера представляет собой поплавированный буфер из 180 образцов при 8 кГц.
*ERASE ALL
*
* 1.01 C INTRST FROM FOCAL PROGRAMMING MANUAL PDP-15 SYSTEMS
* 1.02 C COPYRIGHT 1970 BY DIGITAL EQUPMENT CORP.
* 1.03 C REPRINTED BY PERMISSION OF DIGITAL EQUIPMENT CORP.
* 1.04 C LAST CHANGE: 8/9/71
* 1.05
* 1.06 C THIS PROGRAM WILL COMPUTE MONTHLY PAYMENTS AND THE
* 1.07 C CONTRIBUTION OF EACH PAYMENT TO INTEREST AND PRINCIPAL.
* 1.08 C YOU WILL BE ASKED THE AMOUNT OF THE PRINCIPAL, THE RATE
* 1.09 C OF THE INTEREST, AND THE TERM OF THE LOAN, WHICH IS IN
* 1.10 C MONTHS. THE PROGRAM WILL THEN OUTPUT A TABLE SHOWING
* 1.11 C THE PROGRESSION OF THE LOAN.
* 1.12
* 1.33 E
* 1.34 A "PRINCIPAL: ",PR,!"INTEREST RATE: ",IN
* 1.35 A !"TERM (IN MONTHS): ",TE,!!
* 1.40 S D=1+((IN/12)*.01)
* 1.41 F A=1,TE;D 15.99
* 1.42 S C=PR/B
* 1.50 S BA=PR
* 5.02 T "PRINCIPAL:",%7.02,PR,:30"PAYMENTS",C,!!!
* 5.05 T :5,"PAYMENT",:17,"INTEREST",:32,"PRINCIPAL",:50,"BALANCE",!
* 6.01 F M=1,TERM;D 7
* 6.02 T !!!,:20,"TOTAL INTEREST",%6.02,TO,!!!;G 1.33
* 7.01 S CI=BA*(IN/12)*.01
* 7.02 S TO=TO+CI
* 7.03 S CP=C-CI;S BA=BA-CP;T %7,M,%14.02,CI,CP,BA,!
*15.99 S B=B+(1/D^A)
*
*
* GO
PRINCIPAL: :100000
INTEREST RATE: :6.3
TERM (IN MONTHS): :120
100000.0= 0.00= 1125.33
= 0.00PAYMENT= 0.00INTEREST= 0.00PRINCIPAL= 0.00BALANCE
= 1= 525.00= 600.33= 99399.70
= 2= 521.85= 603.48= 98796.20
= 3= 518.68= 606.65= 98189.50
= 4= 515.50= 609.84= 97579.70
= 5= 512.29= 613.04= 96966.60
= 6= 509.08= 616.26= 96350.40
= 7= 505.84= 619.49= 95730.90
= 8= 502.59= 622.74= 95108.10
= 9= 499.32= 626.01= 94482.10
= 10= 496.03= 629.30= 93852.80
= 11= 492.73= 632.60= 93220.20
= 12= 489.41= 635.93= 92584.30
= 13= 486.07= 639.26= 91945.00
= 14= 482.71= 642.62= 91302.30
= 15= 479.34= 645.99= 90656.30
= 16= 475.95= 649.39= 90007.00
= 17= 472.54= 652.80= 89354.20
= 18= 469.11= 656.22= 88697.90
= 19= 465.67= 659.67= 88038.20
= 20= 462.20= 663.13= 87375.10
= 21= 458.72= 666.61= 86708.50
= 22= 455.22= 670.11= 86038.40
= 23= 451.70= 673.63= 85364.70
= 24= 448.17= 677.17= 84687.50
= 25= 444.61= 680.72= 84006.80
= 26= 441.04= 684.30= 83322.50
= 27= 437.44= 687.89= 82634.60
= 28= 433.83= 691.50= 81943.10
= 29= 430.20= 695.13= 81248.00
= 30= 426.55= 698.78= 80549.20
= 31= 422.88= 702.45= 79846.80
= 32= 419.20= 706.14= 79140.60
= 33= 415.49= 709.84= 78430.80
= 34= 411.76= 713.57= 77717.20
= 35= 408.02= 717.32= 76999.90
= 36= 404.25= 721.08= 76278.80
= 37= 400.46= 724.87= 75553.90
= 38= 396.66= 728.67= 74825.20
= 39= 392.83= 732.50= 74092.70
= 40= 388.99= 736.34= 73356.40
= 41= 385.12= 740.21= 72616.10
= 42= 381.24= 744.10= 71872.00
= 43= 377.33= 748.00= 71124.00
= 44= 373.40= 751.93= 70372.10
= 45= 369.45= 755.88= 69616.20
= 46= 365.49= 759.85= 68856.30
= 47= 361.50= 763.84= 68092.50
= 48= 357.49= 767.85= 67324.60
= 49= 353.46= 771.88= 66552.70
= 50= 349.40= 775.93= 65776.80
= 51= 345.33= 780.00= 64996.80
= 52= 341.23= 784.10= 64212.70
= 53= 337.12= 788.22= 63424.50
= 54= 332.98= 792.35= 62632.10
= 55= 328.82= 796.51= 61835.60
= 56= 324.64= 800.69= 61034.90
= 57= 320.43= 804.90= 60230.00
= 58= 316.21= 809.12= 59420.90
= 59= 311.96= 813.37= 58607.50
= 60= 307.69= 817.64= 57789.80
= 61= 303.40= 821.93= 56967.90
= 62= 299.08= 826.25= 56141.70
= 63= 294.74= 830.59= 55311.10
= 64= 290.38= 834.95= 54476.10
= 65= 286.00= 839.33= 53636.80
= 66= 281.59= 843.74= 52793.00
= 67= 277.16= 848.17= 51944.90
= 68= 272.71= 852.62= 51092.20
= 69= 268.24= 857.10= 50235.10
= 70= 263.74= 861.60= 49373.50
= 71= 259.21= 866.12= 48507.40
= 72= 254.66= 870.67= 47636.70
= 73= 250.09= 875.24= 46761.50
= 74= 245.50= 879.83= 45881.70
= 75= 240.88= 884.45= 44997.20
= 76= 236.24= 889.10= 44108.10
= 77= 231.57= 893.76= 43214.30
= 78= 226.88= 898.46= 42315.90
= 79= 222.16= 903.17= 41412.70
= 80= 217.42= 907.91= 40504.80
= 81= 212.65= 912.68= 39592.10
= 82= 207.86= 917.47= 38674.60
= 83= 203.04= 922.29= 37752.30
= 84= 198.20= 927.13= 36825.20
= 85= 193.33= 932.00= 35893.20
= 86= 188.44= 936.89= 34956.30
= 87= 183.52= 941.81= 34014.50
= 88= 178.58= 946.76= 33067.70
= 89= 173.61= 951.73= 32116.00
= 90= 168.61= 956.72= 31159.30
= 91= 163.59= 961.75= 30197.50
= 92= 158.54= 966.79= 29230.70
= 93= 153.46= 971.87= 28258.90
= 94= 148.36= 976.97= 27281.90
= 95= 143.23= 982.10= 26299.80
= 96= 138.07= 987.26= 25312.50
= 97= 132.89= 992.44= 24320.10
= 98= 127.68= 997.65= 23322.40
= 99= 122.44= 1002.89= 22319.60
= 100= 117.18= 1008.15= 21311.40
= 101= 111.89= 1013.45= 20297.90
= 102= 106.57= 1018.77= 19279.20
= 103= 101.22= 1024.12= 18255.10
= 104= 95.84= 1029.49= 17225.60
= 105= 90.44= 1034.90= 16190.70
= 106= 85.00= 1040.33= 15150.30
= 107= 79.54= 1045.79= 14104.50
= 108= 74.05= 1051.28= 13053.30
= 109= 68.53= 1056.80= 11996.50
= 110= 62.98= 1062.35= 10934.10
= 111= 57.41= 1067.93= 9866.18
= 112= 51.80= 1073.53= 8792.64
= 113= 46.16= 1079.17= 7713.47
= 114= 40.50= 1084.84= 6628.64
= 115= 34.80= 1090.53= 5538.11
= 116= 29.08= 1096.26= 4441.85
= 117= 23.32= 1102.01= 3339.84
= 118= 17.54= 1107.80= 2232.04
= 119= 11.72= 1113.61= 1118.43
= 120= 5.87= 1119.46=- 1.03
= 0.00TOTAL INTEREST= 35039.0
PRINCIPAL: :
Сеско
Чт 14 июля 2016 г. 8:19 утра
Рик Кимбалл написал:Код будет просто скомпилироваться как есть.