ReSpeaker является платой для разработки сочетающей в себе Atmel AVR MCU, модуль MediaTek MT7688 WiFi и работающая на OpenWrt, с встроенным микрофоном, аудио — разъемом I / O, для голосового управления для приложений IoT. Это означает , что вы можете сделать свой собственный Amazon Echo используя плату и дополнения, использовать его в качестве шлюза для домашней автоматизации с голосовым контролем и многое другое. Плата была запущена на Kickstarter несколько дней назад, и уже подняла $ 100,000 от приблизительно 100 участников, но я получил ранний образец, так что я буду предоставлять более подробную информацию о прошивке, и показывать, как использовать с некоторыми сценариями Python используя Microsoft Bing Speech API.
Вам нужен микро-USB к кабелю USB для подключения к компьютеру (Linux, Windows, Mac OS …), и динамик для подключения к плате. Linux (OpenWrt) загружается в течение нескольких секунд, и как только это будет сделано все RGB LED будут постоянно мигать.
Я использую компьютер под управлением Ubuntu 16.04 и ReSpeaker определяется системой как плата Arduino Leonardo:
[ 5363.542637] usb 3-4.4.4: new full-speed USB device number 7 using ehci-pci [ 5363.652356] usb 3-4.4.4: New USB device found, idVendor=2341, idProduct=0036 [ 5363.652361] usb 3-4.4.4: New USB device strings: Mfr=2, Product=1, SerialNumber=0 [ 5363.652364] usb 3-4.4.4: Product: Arduino Leonardo [ 5363.652367] usb 3-4.4.4: Manufacturer: Arduino LLC [ 5363.697606] cdc_acm 3-4.4.4:1.0: ttyACM0: USB ACM device [ 5363.697994] usbcore: registered new interface driver cdc_acm [ 5363.697998] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Это не обязательно, но если вы хотите, вы можете получить доступ к последовательной консоли, с программами Minicom, экран или HyperTerminal и установить соединение с 57600 8N1 для доступа к командной строке. Вот полный лог загрузки:
DDR Calibration DQS reg = 00008887 U-Boot 1.1.3 (Sep 10 2015 - 05:56:31) Board: Ralink APSoC DRAM: 128 MB relocate_code Pointer at: 87f68000 flash manufacture id: ef, device id 40 19 find flash:W25Q256FV *** Warning - bad CRC, using default environment ============================================ Ralink UBoot Version: 4.3.0.0 -------------------------------------------- C 7628_MP (Port5<->None) DRAM bus: 6 bit 1024 Mbits DDR, with 16 Tota memory: 12 MBytes Flsh componen: SPI Flash Date:Sep 10 2015 Time:05:56:31 ============================================ icache: sets:512, ways:4, linesz:32 ,total:65536 dcache: sets:256,ys:4,linesz:32 ,otal:32768 ##### The CPU freq = 580 MHZ #### estimate memory size =128 Mbyte RESET MT728 PHY!!!!!! GPIOMODE --> 50054404 GPOMODE2 --> 5540551 Please choose the operation: 1: Lystem code to SDRAM via TFTP. 2: Load system code then write to Flash via TFTP. 3: Boot system code via Flash (default). 4: Entr boot command lne interfac. 7: Load Boo Loader cod then writeto Flash via Seril. 9: Load Boot Loder code thn write to lash via TP. 3: SystemBoot systemcode via Flsh. ## Booing image a bc050000 .. Image Name: MIPS OpenWrt Linux-3.18.23 Image Type: MIPS Linux Kernel Iage (lzma cmpressed) Data Size: 1295088 Bytes = 1.2 MB Load Address: 80000000 Entry Poin 80000000 Verifyng Checksum... OK Uncompressing Kernel Image ... OK No initrd ## Transferring control to Linux at address 0000000) ... ## Giving linux memsize in MB, 128 Starting kernel ... [ 0.000000] Linux version 3.18.23 (pillar@server) (gcc version 48.3 (OpenWrt/Linaro GCC 6 [ 0.000000] Bard has DDR [ 0.00000] AnalogPMU set to hw conrol [ 0000000] Digtal PMU setto hw control [ 0.000000]oC Type: ediaTek MT7688 ver:1 eco:2 [ 0.000000] bootconsole [early0] enabled [ 0.000000] CPU0 revision s: 00019655(MIPS 24KEc [ 0.000000] MIPS: machine is MediaTek LinkIt Smart 7688 [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 08000 00000000 (sable) [ 0.000000] Initrd not found or empty - disabling initrd [ 0.000000] Zone ranges: [ 0.000000] Normal mem 0x00000000-0x07ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Earl memory nod ranges [ 0.00000] nod 0[mem 0x00000000-0x07fffff] [ .000000] Intmem setup ode 0 [mem x00000000-0x07fffff] [ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes. [ 0.000000]Primary dat cachB, 4-way, PIPT, no aliases, linesize 32 bytes [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 3252 [ 0.00000] Kernel command line: console=ttyS2,57600 rootfstype=squashfs,jffs2 [ 0.000000] PID hash table entries: 512 (order:, 2048 bytes) [ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 6536 bytes) [ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 btes) [ 0.000000] Writing ErrCtl register=0007b250 [ 0.000000] Readback ErrCtl register=0007b250 [ 0.000000] Memory: 125868K/131072K available (2875 kernel code, 134K rwdata, 612K rodat) [ 0.000000] SLU: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:256 [ 0.00000]using register map from evicetree [ 0.000000] CPU Clock: 580MHz [ 0.000000] clocksource_of_init: no matching clocksources found [ 0.000000 Calibratin delay loop.. 385.84 BogoMIPS (lpj=1929216) [ 0.060000] pid_max: default: 32768 mnimum: 301 [ .060000] Munt-cache hsh table enries: 1024 order: 0, 496 bytes) 0.07000] Mountpoin-cache hash tableentries: 104 (order: 0 4096 bytes [ 0.080000] pinctrl core: initialized pinctrl susystem [ 0.090000] NET: Registered protocol mily 16 [ 0.110000] mt7621_gpio 10000600.gpio: registering 32 gpios [ 0.120000] mt7621_gpio 10000600.gpio: reistering 32 gpios [ 0.130000] mt7621_gpio 10000600.gpioregistering 32 gpios [ 0.140000] i2c-ralink 10000900.i2c: loaded [ 0.140000] Advanced Linux Sound Architecture Driver Initialized. [ 0.150000] Switched to clocksource MIPS [ 0.160000] NET: Registered protocol family 2 [ 0.160000] TCP establied hash table entries: 1024 (order: , 4096 byte) [ 0.10000] TCP bnd hash table entries: 1024 (order: 0, 4096 bytes) [ 0.190000] TCP: Hash tables configred (establshed 1024 bind 1024) [ 0.200000] TCP: reno registered [ 0.210000] UDP hash table entries 256 (order 0,96 bytes) [ 0.22000] UDP-Litehash table ntries: 256(order: 0, 096 bytes) [ 0.230000] NET: Registered protocol family 1 [ 0.240000] futex hash table entries: 256 (order: -, 3072 byte) [ 0.260000] squashfs: ve4.0 (2009/01/31) Phillip Lougher [ 0.270000] jffs2: version 2.2 (NAND) (SUMARY) (LZMA)(RTIME) (CMODE_PRIORITY) (c) 2001-2. [ 0.300000] msmni has bee set to 245 [ 0.300000] io scheduler noop egistered [ 0.310000] io scheduler deadline regist(default) [ 0.320000] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled [ 0.340000] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 28, base_baud = 2500000) A [ 0.350000] 10000d00.uart1: ttyS1 at MMIO 0x10000d00 (irq = 29, base_baud = 20000) is a A [ 0.370000] console [ttyS2] disabled [ 0.380000] 10000e00.uart2: ttyS2 a MMIO 0x1000e00 (irq =30, base_bad = 2500000 is a 1650 [ 0.40000] consol [ttyS2] enbled [ .400000] console ttyS2 enabled [ 0.410000 bootconsol [early0] dsable 0.410000] bootconsole [early0] disabled [ 0.4303 [ 0.450000] m25p80 spi32766.0: found w25q56, expected mx25l25635e [ 0.470000]25p80 spi32766.0: w25q256 (32768 Kbytes) [ 0.48000] m25p80 pi32766.0: sing chunke io [ 0.480000] 4 ofpart partitons found o MTD device spi32766.0 [ 0.500000] Creating 4 MTD partitions on "spi32766.0": [ 0.510000] 0x000000000000-000000003000 : "u-boot" [ 00] 000000003000-0x00000004000 : "" [ 0.530000] 0x000000040000-0x000000050000 "factory" [ 0.540000] 0x000000050000-0x000002000000 : "firmware" [ 0.610000] 2 uge-fw partitions found on MTD device firmware [ 0.630000] 0x000000050000-0x00000018c330 : "kernel" [ 0.640000] 0x00000018c330-0x000002000000 : "rotfs" [ 0.650000] mtd: device 5 (rootfs) set to be root filesystem [ 0.660000] 1 squashfs-split partitions founn MTD device rootfs [ 0.670000] 0x0000017f00000x00000200000 : "rootf_data" [ 0.700000] ralink_soc_eth 10100000.ethernet eth0: ralink a 0xb0100000 irq 5 [ 0.710000] i2c /dev entries driver [ 0.720000] mt7621_dt 10000120watchdog: Iitialized [ 0.730000] Enable Ralink GDMA Contoller Modul [ 0.740000] GDMA IP Version=3 [ 0.750000] TCP: cubic regisered [ 0.750000] NE: Registere protocol fmily 17 [ 0.760000] bridge: automatic filting via arp/ip/ip6tables has been deprected. Updateyou. [ 0.790000] 8021q: 802.1Q VLAN Support v1.8 [ 0.800000] *******Enter codec_wm8960_i2c_probe******** [ 0.810000] soc-audo soc-audio ASoC: maine MTK APSoC I2S should use snd_soc_register_car) [ 0.830000] wm8960 0-001a: No platform data supplied [ 0.840000] ****** wm8960_preinit ****** [ 1.350000] soc-audio soc-audio: wm8960-hii <-> mt76x-i2s mapping ok [ 1.36000] ALSA devce: [ 1.370000] #0: MTK APSoC IS [ 1.380000] VFS: Mounted root (squashfs filesystem) readonly on devie 31:5. [ 1.400000] Freeing unused kernel memory: 144K (8038c000 - 803b000) [ 2.71000] init: nsole is alive [ 2.72000] init: watchdog - [ 4.690000] usbcore: regisered new interfac drivr usbfs [ 4.700000] usbcre: registeed new inteface driverhub .71000] usbcore: egistered nw device drver usb [ 4.730000] exFAT: Version 1.2.9 [ 4.750000] SCSI subsystem iniialized [ 4.760000] ehci_hcd: US 2.0 'Enhaned' Host Cotrollr (EHCI) Drver [ 4.780000] ehci-platform: EHC generic pltform driver [ 4.990000] phy phy-usbphy.0: remote usb device wakeup disable [ 5.000000] phy phy-usbphy.0: UTMI 16bit 30MHz [ 5.010000] ehclatform 101c0000.ehci: EHCI Host Controller [ 5.020000] ehci-platform 101c0000.ehci: new USB bus registered, assigned bus number 1 [ 5.030000] ehci-platform 101c0000.ehci: irq 26, i mem 0x101c000 [ 5.070000] ehci-platform 101c0000.ehci: USB 2.0 started,EHCI 1.00 [ 5.08000] hub 1-0:10: USB hub ound [ 5.090000] hub 1-0:1.0: 1 port detected [ 5.100000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 5.110000] ohci-platform: OHCI generic platform driver [ 5.120000] ohci-platform 101c1000.ohci: Generic Platform OHCI controller [ 5.130000] ohci-platform 101c1000.ohci: new USB bus regstered, assigned bus number 2 [ 5.150000] ohci-platform 101c1000.ohci: ir 26, io mem101c1000 [ 5.220000] hub 2-0:1.0: USB hub found [ 5.230000] hub 2-0:1.0: 1 port detected [ 5.240000] platform gpio-leds: Driver les-gpio requsts probe deferral [ 5.260000] MTK MSDC dev init. [ 5.260000] SET_IOS: CLK(0kHz), BUS(PSHPULL), BW1), PR(UP), VDD(.30v), TIMIG(LEGACY)SET_) [ 5.30000 mtk-sd: MeiaTek MT657 MSDC Driver [ 5.340000] sdhci: Secure Digital Host Controller Interface driver [ 5.350000] sdhci: Copyright(c Pierre Ossan [ 5] sdhci-pltfm: SDHCI platform nd OF driver helper [ 5.370000] usbcore: registered new interface driver usb-storage [ 5.390000] SET_IOS: CLK(0kHz), BUS(OPENDRAIN), BW(1), PWR(OFF, VDD(1.50v, TIMING(LEGACY) [ 5.400000] latform gpio-le Driver les-gpio requests probe deferral [ 5.720000] init: - preinit - [ 4.680000] usbcore: registered new interface driver usbfs [ 4.690000] usbcore: registered nw intrface drive hub [ 4.700000] usbcore: registered new device driver usb [ 4.720000] exFAT: Version 1.2.9 [ 4.740000] SCSI subsystem initialized [ 4.750000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 4.770000] ehci-platform: EHCI generic platform driver [ 4.980000] phy phy-usbphy.0: remote usb device wakeup disabled [ 4.990000] phy phy-usbphy.0: UTMI 16bit 0MHz [ 5.000000] ehci-platform 101c0000.ehci: EHCI Host Controller [ 5.010000] ehci-platform 101c0000.ehci: new USB bus registered, assigned bus number 1 [ 5.020000] ci-platform 101c0000.ehci: irq 26, io mem 0x101c0000 [ 5.060000] ehci-plaform 101c000.ehci: USB 2.0 started, EHCI 1.00 [ 5.070000] hub 1-0:1.0: USB hub found [ .080000] hub 1-0:1.0: 1 port detected [ 5.090000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 5.100000] ohci-platform: OHCI generic pltform drive [ 5.110000] ohci-platform 101c1000.ohci: Generic Platform OHCI controller [ 5.1000] ohci-platform 101c1000.ohci: new USB bus registered, assigned bu number 2 [ 5.140000] ohci-platform 101c1000.ohci: irq 26, io mem 0x101c1000 [ 5.21000] hub 2-0:.0: USB hubfound [ 5.220000] hub 2-0:1.0: 1 port detected [ 5.230000] platform gpioleds: Drive leds-gpio equess probe defrral [ 5.250000] MTK MSDC device init. [ 5.250000] SET_IOS: CLK(0kHz), BUS(PUSHPULL), BW(1), PWR(UP), VDD(3.30v), TIMING(LEGACY) [ 5.320000] mtk-sd: MediaTek MT6575 MSDC Diver [ 5.3000] SET_IOS: CLK(0kHz), BUS(OPENDRAN), BW(1), WR(OFF), VD(1.50v), TIING(LEGACY) [ 5.340000] platform gpio-leds: Driver leds-gpio requests probe deferral [ 5.360000] sr [ 5.370000] sdhci: Copyright(c) Pie Ossman [ 5.380000] sdhci-pltfm: SDHCI platform andr [ 5.390000] usbcore: registered new interface driver usb-storage [ 5.730000] init: - preinit - [ 6.760000] rt305x-esw 10110000.esw: link changed 0x00 [ 6.920000] random: procd urandom read wi0 bits of enropy availale Press the [f] key and hit [enter] to enterfailsafe moe Press the [1], [2], [3] or [4] key and hit [enter] to select the debug leve [ 9.480000] jffs2: notice: (389) jffs2_build_xattr_subsyste: complete uilding xatr subsy. [ 9.520000] mo_root: switching to jffs2 overlay [ 9.550000] procd: - early - [ 9.560000] procd: - watchdog - [ 10.380000] procd: - ubus - [ 11.400000] procd: - init - Please press Enter to activte thole. BusyBox v1.23.2 (2016-07-14 20:06:12 CST) built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ _____|| __|_____|__|__||________||__| |___| _| ------------------------------------------------- CHAOS CAMER (Chaos Calmer, r48532) ----------------------------------------------------- * 1 1/2 ozGin Shake with lassful 1/4 oz Triple Sec of broken ice and pour * 3/4 oz Lime Juice unstrained into a goblet. * 1 1/2 oz Orange Juice * 1 tsp. Grenadine Syrup -------------------------------------------------- root@(noe):/#
При последовательном соединении будет не хватать некоторых символов. Это происходит с двумя компьютерами и различными USB-кабелями. Надеюсь, это либо конкретно проблема с моим образцом, или, эта проблема будет исправлена, когда начнется доставка покровителям Kickstarter [Update: Компания объяснила мне, что это потому, что 32u4 Atmel и Mediatek MT7688 разделяют один и тот же порт USB ].Таким образом, вместо того, чтобы использовать последовательную консоль, я буду использовать SSH вместо того, что означает, что я должен подключиться к точке доступа Wi-Fi ReSpeaker и настроить его.
ReSpeaker покажет , как LinkIt_Smart_7688_XXXXX, так как модуль WiFi точно такой же , как в LinkIt 7688 IoT и неудивительно , что интерфейс конфигурации точно такой же.
Сначала установите пароль и войти в систему с этим паролем.
Затем перейдите на вкладку Сеть, выберите режим станции, а также подключиться к точке доступа, введя свой пароль. Нажмите кнопку Настроить. Как вы можете видеть справа выше, вы можете также использовать интерфейс LUCI OpenWRT для настройки сети.
Теперь нужно найти ReSpeaker IP-адрес через свой список Маршрутизатор DHCP-клиента, АРП-сканирования, или другим способом:
sudo apt install arp-scan sudo arp-scan --localnet
Теперь вы можете подключить к плате через SSH:
ssh root@respeaker_ip_address
и использовать пароль, установленный в веб-интерфейсе.
Теперь давайте проверим некоторую информацию CPU:
cat /proc/cpuinfo system type : MediaTek MT7688 ver:1 eco:2 machine : MediaTek LinkIt Smart 7688 processor : 0 cpu model : MIPS 24KEc V5.5 BogoMIPS : 385.84 wait instruction : yes microsecond timers : yes tlb_entries : 32 extra interrupt vector : yes hardware watchpoint : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb] isa : mips1 mips2 mips32r1 mips32r2 ASEs implemented : mips16 dsp shadow register sets : 1 kscratch registers : 0 package : 0 core : 0 VCED exceptions : not available VCEI exceptions : not available
У нас есть процессор Mediatek NT7688 MIPS24K как рекламируется, так что давайте проверим несколько более подробно:
root@mylinkit:~# uname -a Linux mylinkit 3.18.23 #259 Mon Aug 8 17:04:04 CST 2016 mips GNU/Linux root@mylinkit:~# df -h Filesystem Size Used Available Use% Mounted on rootfs 8.1M 504.0K 7.6M 6% / /dev/root 22.5M 22.5M 0 100% /rom tmpfs 61.5M 260.0K 61.3M 0% /tmp /dev/mtdblock6 8.1M 504.0K 7.6M 6% /overlay overlayfs:/overlay 8.1M 504.0K 7.6M 6% / tmpfs 512.0K 0 512.0K 0% /dev root@mylinkit:~# free -m total used free shared buffers Mem: 126012 36052 89960 260 4660 -/+ buffers: 31392 94620 Swap: 0 0 0
Плата работает на Linux 3.18.23, имеет 7.6Mb объем доступной памяти, а также 128 Мб оперативной памяти в общей сложности.
Я не буду проверять звуковые функции с помощью сценария Python, у меня нет ReSpeaker микрофона и я должен быть довольно близко к микрофону для того , чтобы всё поучилось максимум один метр или объем будет очень низким.
Я начну проверять аудио записи и воспроизведение с любыми требованиями API или доступом в Интернет.
Мы можем записывать звук с частотой дискретизации 16000, 16 бит, шириной 1 канала с помощью следующей команды
arecord -M -f S16_LE -r 16000 -c 1 --buffer-size=204800 -v /tmp/sample.wav
и воспроизвести его с помощью APlay:
aplay -M /tmp/sample.wav --buffer-size=204800 -v
Он работает хорошо.
Теперь мы можем проверить несколько сценариев Python по преобразованию текста в речь и речи в текст. Вы можете получить сценарии из ReSpeaker GitHub и установить его:
git clone https://github.com/respeaker/microsoft_cognitive_services.git cd microsoft_cognitive_services pip install monotonic
Сценарий использует Microsoft Speech API, но в теории вы можете использовать любой другой речевой API. Так какSeeed студия уже сделали всю тяжелую работу, я просто применил ключ Peech API Microsoft для того , чтобы использовать демо:
Это бесплатно для тестирования / оценки, но если вы собираетесь использовать его в коммерческих продуктах, или для собственного дела,то вам нужно приобрести подписку.
Вы найдете три сценария Python в каталоге , а именно: bing_voice.py , bing_stt_with_vad.py , tts.py . Посмотрите на BING_KEY внутри каждого скрипта, и вставить свой собственный ключ.
Время, чтобы повеселиться, начинаем с преобразования речи в текст:
python bing_stt_with_vad.py ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21 ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21 ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround40 ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround41 ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround50 ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround51 ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71 ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958 ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958 ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958 ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline * recording 000000000111000000000000000000000000000000000000000000000000000000000011111+11111111111111100000000- * done recording Bing:你好 * recording 000000000000000000000000000000000000000000000000000000000^C0 * done recording
Это довольно медленно потребуется около 15 секунд, а затем есть несколько сообщение об ошибке, прежде чем вы сможете увидеть сообщение «* запись», и вы можете говорить. «Bing:你好».Китайский? Да, в настоящее время по умолчанию язык является китайским, но вы можете отредактировать bing_stt_with_vad.py , и изменить язык замены ZH-CN по EN-US, или другие строки языка:
# text = bing.recognize(data, language='zh-CN') text = bing.recognize(data, language='en-US') # text = bing.recognize(data, language='th-TH')
Английский тоже работает (вроде):
python bing_stt_with_vad.py * recording 0000000000000000000000000000000000011111+111111111111111111111111111111111111111111111001111111111111110000011111000111111111100000000- * done recording Bing:hello world next software * recording 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111+11111111111111111111111100001111111111111111111111111100111111111111100000000- * done recording Bing:what's the weather like today
В первом предложении, я сказал: «Привет, мир! Добро пожаловать на CNX Software сегодня «, но вышло как» привет мир следующего программного обеспечения «, может быть, из-за моего акцента, но я сомневаюсь в этом …
Тогда я хотел бы попробовать тайский язык, но я получил отказ API просто потому , что количество поддерживаемых языков с помощью Microsoft Speeach API ограничен , теми что показаны в таблице ниже.
language-Country | language-Country | language-Country | language-Country |
---|---|---|---|
ar-EG* | en-IN | fr-FR | pt-BR |
ca-ES | en-NZ | it-IT | pt-PT |
da-DK | en-US | ja-JP | ru-RU |
de-DE | es-ES | ko-KR | sv-SE |
en-AU | es-MX | nb-NO | zh-CN |
en-CA | fi-FI | nl-NL | zh-HK |
en-GB | fr-CA | pl-PL | zh-TW |
Если ваш язык не перечислен здесь, то вы могли бы воспользоваться Google Speech API вместо этого Seeed Studio уже написали совместимые сценарии ReSpeaker для тех кто участвовал в сборе средств.
Так что теперь вы знаете , как конвертировать ваш голос в текст, и вы можете использовать этот текст для веб — поиска, или переключения GPIOs, но вы также можете получить аудио ответ на ваши действия, и tts.py сценарий очень прост в использовании:
python tts.py "Hello World! Welcome to CNX Software"
Не особо реалистично, но по крайней мере я мог понять женский голос в динамиках. Просматривая сценарии я не видел каких — либо настроек языка, поэтому я предполагаю , что API будет автоматически определять язык. В конце концов я обнаружил , что вы можете изменить язык в bing_voice.py сценарии:
#def synthesize(self, text, language="en-US", gender="Female"): def synthesize(self, text, language="fr-FR", gender="Male"):
Я заменил женский голос США, но французский мужской голос:
python tts.py "Salut mon gars. Comment ca va?"
Вы можете посмотреть все эти демо в видео ниже, чтобы получить лучшее представление о качестве звука, задержке, и возможностях Microsoft Bing Speech API.
Благодарим сайт cnx-software.com за предоставленную информацию
Оригинал статьи тут