百度智能小程序 文本轉(zhuǎn)換為mp3文件

2020-09-05 14:16 更新

swan.ai.textToAudio

解釋:將文本轉(zhuǎn)換為可以播放的 mp3 文件。

方法參數(shù)

Object object

object 參數(shù)說明

屬性名類型必填默認(rèn)值說明

tex

String

-

合成的文本,使用 UTF-8 編碼,小于 512 個中文字或者英文數(shù)字(文本在百度服務(wù)器內(nèi)轉(zhuǎn)換為 GBK 后,長度必須小于 1024 字節(jié))。

ctp

String

1

客戶端類型選擇, Web 端填寫固定值 1 。

lan

String

zh

固定值 zh 。語言選擇,目前只有中英文混合模式,填寫固定值 zh 。

spd

String

5

語速,取值 0-9 ,默認(rèn)為 5 中語速。

pit

String

5

音調(diào),取值 0-9 ,默認(rèn)為 5 中語調(diào)。

vol

String

5

音量,取值 0-9 ,默認(rèn)為 5 中音量。

per

String

0

發(fā)音人選擇, 0 為普通女聲, 1 為普通男生, 3 為情感合成-度逍遙, 4 為情感合成-度丫丫,默認(rèn)為普通女聲。

success

Function

接口調(diào)用成功的回調(diào)函數(shù)

fail

Function

接口調(diào)用失敗的回調(diào)函數(shù)

complete

Function

接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

success 返回參數(shù)說明

參數(shù)類型說明

filePath

String

合成的音頻文件的路徑,此路徑為臨時(shí)路徑且在當(dāng)次回調(diào)中有效。

示例



圖片示例


代碼示例 1: 

在開發(fā)者工具中打開

Page({
    data: {
        sourceIndex: 5,
        sourceArray: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
        sizeIndex: 5,
        sizeArray: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
        countIndex: 5,
        countArray: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
        perIndex: 1,
        perArray: ['普通女聲', '普通男聲', '情感合成-度逍遙', '情感合成-度丫丫'],
        msg: 'hello,這是一段測試語音合成的文字'
    },
    sourceChange(e) {
        this.setData('sourceIndex', e.detail.value);
    },
    sizeChange(e) {
        this.setData('sizeIndex', e.detail.value);
    },
    countChange(e) {
        this.setData('countIndex', e.detail.value);
    },
    perChange(e) {
        this.setData('perIndex', e.detail.value);
    },
    textToAudio() {
        let tex = this.getData('msg');
        let sourceIndex = this.getData('sourceIndex');
        let sizeIndex = this.getData('sizeIndex');
        let countIndex = this.getData('countIndex');
        let perIndex = this.getData('perIndex');
        // AI系列的api有宿主使用限制,只可在百度App中使用,建議使用時(shí)加一層判斷防止代碼報(bào)未知錯誤
        let host = swan.getSystemInfoSync().host;
        if (host === 'baiduboxapp') {
            swan.ai.textToAudio({
                tex,
                ctp: '1',
                lan: 'zn',
                spd: JSON.stringify(this.data.sourceArray[sourceIndex]),
                pit: JSON.stringify(this.data.sizeArray[sizeIndex]),
                vol: JSON.stringify(this.data.countArray[countIndex]),
                per: JSON.stringify(this.data.perArray[perIndex]),
                success: res => {
                    console.log('ai.textToAudio success', res);
                    swan.showToast({
                        title: '合成成功',
                        icon: 'none'
                    });
                },
                fail: err => {
                    console.log('ai.textToAudio fail', err);
                }
            });
        }
        else {
            swan.showToast({
                title: '此api目前僅可在百度App上使用',
                icon: 'none'
            });
        }
    }
});

代碼示例 2:普通女聲 

在開發(fā)者工具中打開

Page({
    data: {
    },
    textToAudio(){
        // AI系列的api有宿主使用限制,只可在百度App中使用,建議使用時(shí)加一層判斷防止代碼報(bào)未知錯誤
        let host = swan.getSystemInfoSync().host;
        if (host === 'baiduboxapp') {
            swan.ai.textToAudio({
                tex: 'hello,這是一段測試語音合成的文字',
                ctp: '1',
                lan: 'zh',
                spd: '5',
                pit: '5',
                vol: '5',
                per: '0',
                success: res => {
                    console.log('ai.textToAudio success', res);
                    swan.showToast({
                        title: '合成成功',
                        icon: 'none'
                    });
                },
                fail: err => {
                    console.log('ai.textToAudio fail', err);
                }
            });
        }
        else {
            swan.showToast({
                title: '此api目前僅可在百度App上使用',
                icon: 'none'
            });
        }
    }
});

代碼示例 3:普通男聲 

在開發(fā)者工具中打開

Page({
    data: {
    },
    textToAudio(){
        // AI系列的api有宿主使用限制,只可在百度App中使用,建議使用時(shí)加一層判斷防止代碼報(bào)未知錯誤
        let host = swan.getSystemInfoSync().host;
        if (host === 'baiduboxapp') {
            swan.ai.textToAudio({
                tex: 'hello,這是一段測試語音合成的文字',
                ctp: '1',
                lan: 'zh',
                spd: '5',
                pit: '5',
                vol: '5',
                per: '1',
                success: res => {
                    console.log('ai.textToAudio success', res);
                    swan.showToast({
                        title: '合成成功',
                        icon: 'none'
                    });
                },
                fail: err => {
                    console.log('ai.textToAudio fail', err);
                }
            });
        }
        else {
            swan.showToast({
                title: '此api目前僅可在百度App上使用',
                icon: 'none'
            });
        }
    }
});

代碼示例 4:情感合成—度逍遙 

在開發(fā)者工具中打開

Page({
    data: {
    },
    textToAudio(){
        // AI系列的api有宿主使用限制,只可在百度App中使用,建議使用時(shí)加一層判斷防止代碼報(bào)未知錯誤
        let host = swan.getSystemInfoSync().host;
        if (host === 'baiduboxapp') {
            swan.ai.textToAudio({
                tex: 'hello,這是一段測試語音合成的文字',
                ctp: '1',
                lan: 'zh',
                spd: '5',
                pit: '5',
                vol: '5',
                per: '3',
                success: res => {
                    console.log('ai.textToAudio success', res);
                    swan.showToast({
                        title: '合成成功',
                        icon: 'none'
                    });
                },
                fail: err => {
                    console.log('ai.textToAudio fail', err);
                }
            });
        }
        else {
            swan.showToast({
                title: '此api目前僅可在百度App上使用',
                icon: 'none'
            });
        }
    }
});

代碼示例 5:情感合成—度丫丫 

在開發(fā)者工具中打開

Page({
    data: {
    },
    textToAudio(){
        // AI系列的api有宿主使用限制,只可在百度App中使用,建議使用時(shí)加一層判斷防止代碼報(bào)未知錯誤
        let host = swan.getSystemInfoSync().host;
        if (host === 'baiduboxapp') {
            swan.ai.textToAudio({
                tex: 'hello,這是一段測試語音合成的文字',
                ctp: '1',
                lan: 'zh',
                spd: '5',
                pit: '5',
                vol: '5',
                per: '4',
                success: res => {
                    console.log('ai.textToAudio success', res);
                    swan.showToast({
                        title: '合成成功',
                        icon: 'none'
                    });
                },
                fail: err => {
                    console.log('ai.textToAudio fail', err);
                }
            });
        }
        else {
            swan.showToast({
                title: '此api目前僅可在百度App上使用',
                icon: 'none'
            });
        }
    }
});


Bug & Tip

  • 重置 App Secret 會導(dǎo)致此功能無法使用。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號