# 安装

使用 `pnpm` 进行安装

```bash
pnpm install @minto-ai/huoshan-tts
```

# 使用

## 引入库

```javascript
import huoshanTts from '@minto-ai/huoshan-tts'
```

## 初始化

```javascript
huoshanTts.config()
```

## 创建应用实例

详细配置可参考[参数基本说明](hhttps://www.volcengine.com/docs/6561/79823)。

```javascript
const ttsInstance = huoshanTts.create({
  // 音色
  voice_type: 'zh_female_daimengchuanmei_moon_bigtts'
})
```

## 可用方法

### 开始转换

```javascript
ttsInstance.start()
```

### 发送文本

```javascript
ttsInstance.send('你好呀。')
```

### 结束转换

通知应用发送文本已经结束，但是不会销毁应用，剩余的文本将会继续播放。

```javascript
ttsInstance.end()
```

### 销毁应用

应用播放结束，应用将会被销毁。剩余的文本将会停止播放。

```javascript
ttsInstance.finish()
```

#### 调整音量

```javascript
// 静音
ttsInstance.setVolume(0)
// 恢复音量
ttsInstance.setVolume(1)
```

## 应用钩子

### `audioFirstStart`

```javascript
ttsInstance.on('audioFirstStart', () => {
  console.log('音频首次播放')
})
```

### `appError`

```javascript
ttsInstance.on('appError', (error) => {
  console.log('应用错误', error)
})
```

### `appFinish`

```javascript
ttsInstance.on('appFinish', () => {
  console.log('应用已销毁')
})
```

# 示例代码

```javascript
import huoshanTts from '@minto-ai/huoshan-tts'

huoshanTts.config()

const ttsInstance = huoshanTts.create({
  voice_type: 'zh_female_daimengchuanmei_moon_bigtts'
})

ttsInstance
  .on('appFinish', () => {
    console.log('appFinish')
  })
  .on('audioFirstStart', () => {
    console.log('audioFirstStart')
  })

const zzButton = document.createElement('button')
zzButton.textContent = '终止'
const jxButton = document.createElement('button')
jxButton.textContent = '继续'

let timer = null
zzButton.onclick = () => {
  ttsInstance.finish()
  clearTimeout(timer)
}

jxButton.onclick = () => {
  clearTimeout(timer)

  const arrText = [
    `你要抱`,
    `抱我吗？`,
    `我好`,
    `喜欢你呀！`,
  ]

  let index = 0

  timer = setInterval(() => {
    ttsInstance.send(arrText[index])
    index += 1
    if (index === arrText.length) {
      ttsInstance.end()
      clearInterval(timer)
    }
  }, 100)
}

document.body.appendChild(jxButton)
document.body.appendChild(zzButton)
```
