日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

uvoice

概述

uVoice是AliOS Things的音頻組件,提供了RTOS系統上端到云全鏈路的語音能力,包括音頻硬件管理、音頻增強算法、播放器、錄音等基本音頻功能,也結合阿里的智能語音云端服務,提供了TTS、語音控制、語音對話等能智能語音功能。同時,uVoice也是一個資源占用極少,性能較高的音頻組件,適合為低資源、低算力的嵌入式MCU提供音頻能力。 組件支持以下功能:

  • 錄音

  • 播放(Flash/Memory/FS/HTTP/HTTPS/HLS)

  • 播放控制(暫停/繼續/切換/快進/快退/播放列表)

  • 音頻格式解碼(MP3、AAC等)

  • 音頻格式編碼

  • 阿里云TTS

版權信息

Apache license v2.0

目錄結構

.

├── aos.mk

├── application

│ └── alicloudtts

│ ├── alicloudtts.c

│ ├── alicloudtts.h

│ ├── alicloudtts_intf.h

│ ├── include

│ │ └── uvoice_tts.h

│ └── tts.c

├── audio

│ ├── audio_aec.c

│ ├── audio_aec.h

│ ├── audio_common.c

│ ├── audio_common.h

│ ├── audio_mixer.c

│ ├── audio_mixer.h

│ ├── audio_process.c

│ ├── audio_process.h

│ ├── audio_stream.c

│ ├── audio_stream.h

│ ├── audio_trigger.c

│ ├── audio_trigger.h

│ ├── audio_vad.c

│ ├── audio_vad.h

│ ├── hal

│ │ ├── haas100

│ │ │ └── uvoice_pcm.c # haas100

│ │ └── linux

│ │ └── uvoice_pcm.c

│ └── process

│ ├── proc_aec.c

│ ├── proc_agc.c

│ ├── proc_ns.c

│ ├── proc_resample.c

│ └── proc_vad.c

├── build

│ └── mk_makefile

├── CMakeLists.txt

├── codec

│ ├── amr_decoder.c

│ ├── amr_encoder.c

│ ├── amrwb_decoder.c

│ ├── amrwb_encoder.c

│ ├── ogg_decoder.c

│ ├── opensource

│ │ ├── pvaac # aac解碼器

│ │ │ ├── aos.mk

│ │ │ ├── get_pv_aac.py

│ │ │ ├── oscl

│ │ │ │ ├── oscl_base.h

│ │ │ │ ├── oscl_dll.h

│ │ │ │ ├── oscl_exception.h

│ │ │ │ └── oscl_mem.h

│ │ └── pvmp3 # mp3解碼器

│ │ ├── aos.mk

│ │ ├── CMakeLists.txt

│ │ ├── get_pvmp3.py

│ │ ├── Makefile

│ │ ├── oscl_base.h

│ │ └── oscl_mem.h

│ ├── opus_decoder.c

│ ├── opus_encoder.c

│ ├── pvaac_decoder.c

│ ├── pvmp3_decoder.c

│ ├── spx_decoder.c

│ └── spx_encoder.c

├── common

│ ├── base64.c

│ ├── event.c

│ ├── message.c

│ ├── ringbuffer.c

│ └── urlencode.c

├── Config.in

├── connect

│ ├── uvoice_ws.c

│ └── uvoice_ws.h

├── example

│ └── uvoice_example.c # 示例代碼

├── include # 對外頭文件

│ ├── uvoice_event.h

│ ├── uvoice_init.h

│ ├── uvoice_mlist.h

│ ├── uvoice_player.h

│ ├── uvoice_recorder.h

│ ├── uvoice_test.h

│ └── uvoice_types.h

├── internal # 內部頭文件

│ ├── uvoice_alios.h

│ ├── uvoice_amp.h

│ ├── uvoice_audio.h

│ ├── uvoice_codec.h

│ ├── uvoice_common.h

│ ├── uvoice_config.h

│ ├── uvoice_format.h

│ ├── uvoice_linux.h

│ ├── uvoice_list.h

│ ├── uvoice_message.h

│ ├── uvoice_os.h

│ ├── uvoice_pcm.h

│ ├── uvoice_play.h

│ ├── uvoice_record.h

│ ├── uvoice_resampler.h

│ ├── uvoice_ringbuffer.h

│ ├── uvoice_stream.h

│ └── uvoice_wave.h

├── media

│ ├── uvoice_codec.c

│ ├── uvoice_fade.c

│ ├── uvoice_format.c

│ ├── uvoice_mlist.c

│ ├── uvoice_player.c

│ ├── uvoice_recorder.c

│ ├── uvoice_stream.c

│ └── uvoice_wave.c

├── package.yaml

├── README.md

├── stream

│ ├── uvoice_cache.c

│ ├── uvoice_cache.h

│ ├── uvoice_download.c

│ ├── uvoice_download.h

│ ├── uvoice_file.c

│ ├── uvoice_hls.c

│ ├── uvoice_hls.h

│ ├── uvoice_http.c

│ ├── uvoice_http.h

│ ├── uvoice_partition.c

│ └── uvoice_ssl.c

├── test

│ ├── test_main.c

│ ├── test_player.c

│ ├── test_recorder.c

│ ├── test_swid.c

│ └── test_tts.c

├── tools

│ └── gen_voice.py

└── uvoice.c

依賴組件

  • a2sa

  • ulog

  • mbedtls

常用配置

系統中相關配置已有默認值,如需修改配置,統一在YAML中**def_config**節點修改,具體如下:

支持播放功能開關

UVOICE_PLAYER_ENABLE: 1

支持錄音功能開關

UVOICE_RECORDER_ENABLE: 1

支持播放列表功能開關

UVOICE_MLIST_ENABLE: 1

支持播放文件功能開關

UVOICE_FILE_ENABLE: 1

支持播放HTTP功能開關

UVOICE_HTTP_ENABLE: 1

支持播放HTTPS功能開關

UVOICE_HTTPS_ENABLE: 1

支持播放HTTPS功能開關

UVOICE_HTTPS_ENABLE: 1

支持播放網絡音頻時自動下載功能開關

UVOICE_DOWNLOAD_ENABLE: 1

支持播放HLS流媒體功能開關

UVOICE_HLS_ENABLE: 1

支持MP3解碼功能開關

DECODER_PV_MP3_ENABLE: 1

支持AAC(M4A)解碼功能開關

DECODER_PV_M4A_ENABLE: 1

支持阿里云TTS功能開關

ALICLOUD_TTS_SUPPORT: 1

API說明

使用示例

組件使用示例相關的代碼下載、編譯和固件燒錄均依賴AliOS Things配套的開發工具,所以首先需要參考《AliOS Things集成開發環境使用說明之搭建開發環境》,下載安裝。 待開發環境搭建完成后,可以按照以下步驟進行示例的測試。

步驟1 創建或打開工程

打開已有工程

如果用于測試的案例工程已存在,可參考《AliOS Things集成開發環境使用說明之打開工程》打開已有工程。

創建新的工程

組件的示例代碼可以通過編譯鏈接到AliOS Things的任意案例(solution)來運行,這里選擇helloworld_demo案例。helloworld_demo案例相關的源代碼下載可參考《AliOS Things集成開發環境使用說明之創建工程》

步驟2 添加組件

案例下載完成后,需要在helloworld_demo組件的package.yaml中添加對組件的依賴:

solution中helloworld_demo的package.yaml中添加

depends:

- uvoice: master # helloworld_demo中引入uvoice組件

步驟3 下載組件

在已安裝了的開發環境工具欄中,選擇Terminal -> New Terminal啟動終端,并且默認工作路徑為當前工程的workspace,此時在終端命令行中輸入:

aos install uvoice

上述命令執行成功后,組件源碼則被下載到了./components/uvoice路徑中。

步驟4 添加示例

uvoice組件的package.yaml中添加example示例代碼

source_file:

- "example/uvoice_example.c" # add uvoice_example.c

步驟6 燒錄固件

helloworld_demo案例的固件生成后,可參考《AliOS Things集成開發環境使用說明之燒錄固件》來燒錄固件。

步驟7 打開串口

固件燒錄完成后,可以通過串口查看示例的運行結果,打開串口的具體方法可參考《AliOS Things集成開發環境使用說明之查看日志》

當串口終端打開成功后,可在串口中輸入help來查看已添加的測試命令。

步驟8 測試示例

uvoice示例代碼初始化

uvoice_example

uvoice播放文件系統MP3文件功能測試

play "fs:/data/test.mp3" # 這里文件名替換成實際放在littlefs文件系統中的MP3文件

uvoice播放文件系統m4a文件功能測試

play "fs:/data/test.m4a" # 這里文件名替換成實際放在littlefs文件系統中的M4A文件

uvoice播放網絡音頻功能測試

play "http:xxxxxxxx/test.mp3" # 這里文件名替換成實際HTTP鏈接

play "https:xxxxxxxxs/test.mp3" # 這里文件名替換成實際HTTPS鏈接

uvoice錄音功能測試

record 16000 1 16 1024 0 fs:/data/recording.wav

關鍵日志

CLI日志:

uvoice example initialization succeeded !

注意事項

解碼器下載

要支持MP3播放,編譯前,需要到codec/opensource/pvmp3目錄下執行get_pvmp3.py

要支持AAC/M4A播放,編譯前,需要到codec/opensource/pvaac目錄下執行get_pvaac.py

支持播放列表功能

要支持播放列表功能,需要有SD卡,并使能fatfs文件系統

支持HTTPS

要支持HTTPS播放功能,需要將mbedtls的MBEDTLS_CONFIG_TLS_MAX_CONTENT_LEN配置為16k