Some text is skipped after LLM output and voice in...
# support
m
During this call:
6ff61393-8297-4b8b-94ef-726ad32912b1
Text sent to voice input is incomplete (it misses the meeting hour to suggest to customer). Here is an extract from the call logs that illustrates the issue:
Copy code
15:06:41:209
[LOG]
Model request started (attempt #1, gpt-4o-2024-11-20, openai)
Model output: Alors
Model output: ,
Model output: aujourd
Model output: 'hui
Model output: ,
Model output: le
Model output: prochain
Model output: cré
Model output: disponible
Model output: neau
Model output: est
Model output: à
Model output: 16
Model output: **
Model output: heures
Model output:
Model output: 45
Model output: **
Model output: Sinon
Model output: .
Voice input: Alors, aujourd'hui, le prochain créneau disponible est à .
According to model output, voice input should be:
Alors, aujourd'hui, le prochain créneau disponible est à 16 heures 45.
instead of
Alors, aujourd'hui, le prochain créneau disponible est à .
v
Hi there! 👋 I can see from your call log that there's an issue with the voice input missing the meeting hour (16 heures 45). I can help explain what's happening here! Looking at your log, I can identify the likely cause of this issue. The text "16 heures 45" appears between asterisks in the model output (
**heures**
), and according to the information I found, content between asterisks is removed during formatting between LLM output and voice provider. According to the [Vapi documentation](https://discord.com/channels/1211482211119796234/1211483291191083018/threads/1342824967833653268), when LLM generated outputs go through formatting before being passed to the voice provider, any content inside asterisks (*) is automatically removed. For example, if the input is
this *is* okie
, the output will be
this okie
. Here's how to fix this issue: 1. **Toggle off asterisk content removal**: This behavior can be toggled off using an API call if you need to preserve content between asterisks. 2. **Avoid using asterisks in your prompts**: Adjust your LLM prompts to avoid using asterisks for emphasis or formatting when that content needs to be spoken. 3. **Check your formatting settings**: Review your voice pipeline configuration to ensure it's set up correctly for your use case. If you're still experiencing issues after trying these solutions, you might want to check other potential causes such as: - Voice Activity Detection (VAD) settings that might be incorrectly calibrated - Transcriber configuration issues (you might consider switching transcribers if the problem persists) - Text-to-speech pronunciation issues with certain words or numbers Would you like me to provide more detailed troubleshooting steps for any of these potential solutions? Sources: - [Discord Thread on Content Formatting](https://discord.com/channels/1211482211119796234/1211483291191083018/threads/1342824967833653268)
m
THe asterisks doe not come from my prompt. The LLM did a tool call which response contained "16 heure 45" (no asterisk in it). But the LLM formatted it with asterisk
How should I toggle off asterisks?
@Vapi Support Bot
Why the text between asterisks si removed? We should rather only remove the asterisks, no @Vapi ?
v
Hi there! 👋 I understand you need to toggle off the asterisk content removal feature in Vapi. Based on the information I found, I can help with that! There are a few ways you can disable the asterisk content removal: 1. **Using an API call**: According to the information I found, this behavior can be toggled off using an API call. While I don't have the exact API endpoint details, you would need to make a call to Vapi's API to disable this feature. 2. **Modify voice formatting plans**: You can change the
default voice.chunkPlan.formatPlan config
to address this issue. The documentation for this can be found at [Vapi's voice formatting plan documentation](https://docs.vapi.ai/documentation/core-concepts/assistants/voice-formatting-plan). 3. **Adjust the chunkPlan.enabled setting**: This setting controls how text is processed before being sent to the voice provider. When disabled, it bypasses several text processing steps, including basic text formatting which likely includes the asterisk removal. 4. **Check voice provider configuration**: In some cases, the asterisk removal might be a setting within the voice provider's configuration rather than Vapi itself. For the most accurate and up-to-date instructions, you might want to check the Vapi documentation or API reference, as they would contain the specific details on how to toggle off this feature. Is there anything else you'd like to know about handling text formatting in Vapi? Sources: - [Discord Thread on Content Formatting](https://discord.com/channels/1211482211119796234/1211483291191083018/threads/1342824967833653268) - [Discord Thread on Voice Formatting](https://discord.com/channels/1211482211119796234/1211483291191083018/threads/1334184334361628734) - [Discord Thread on Text Processing](https://discord.com/channels/1211482211119796234/1211483291191083018/threads/1343543475383046185)
m
Can I configure some formatting rules on cartesia voices @User ?
@Vapi Support Bot
v
Hi there! 👋 I can definitely help with information about configuring formatting rules on Cartesia voices in Vapi. Based on the information I found, here are the formatting rules you can configure for Cartesia voices: 1. **Language Options**: You can specify additional languages using
CartesiaVoice.language
, including Hindi, Italian, Korean, Dutch, Polish, Russian, Swedish, and Turkish. [Vapi Changelog](https://docs.vapi.ai/changelog/2024/10/30) 2. **Voice Speed and Emotional Range**: You can configure these parameters using
Assistant.voice[provider="cartesia"].experimentalControls
. This allows you to adjust how fast the voice speaks and its emotional expression. [Vapi Changelog](https://docs.vapi.ai/changelog/2025/2/25) 3. **Voice Formatting Plans**: You can modify the
default voice.chunkPlan.formatPlan config
according to your requirements. This affects how text is processed before being converted to speech. [Voice Formatting Documentation](https://docs.vapi.ai/documentation/core-concepts/assistants/voice-formatting-plan) 4. **Chunk Plan Settings**: The
chunkPlan.enabled
setting controls text processing. When enabled, you can configure parameters like:
Copy code
json
   {
     "voice": {
       "chunkPlan": {
         "enabled": true,
         "minCharacters": 30, // Adjust between 1-80
         "punctuationBoundaries": [".", "!", "?", ";"] // Customize based on your needs
       }
     }
   }
5. **Custom Voice Configuration**: You can update the
voice
property in the assistant configuration to use a custom voice. It's worth noting that Vapi doesn't support SSML parsing with Cartesia voices, which is a limitation to be aware of. Is there a specific formatting rule you're interested in configuring for your Cartesia voice? Sources: - [Vapi Changelog](https://docs.vapi.ai/changelog/2024/10/30) - [Vapi Changelog](https://docs.vapi.ai/changelog/2025/2/25)
k
🔵 15:06:42:135 Voice Input Formatted: "Alors, aujourd'hui, le prochain créneau disponible est à .", Original: "Alors, aujourd'hui, le prochain créneau disponible est à 16 heures 45." Hey Marem, Right after LLM generates the output, we apply some LLM utility functions which format the LaM output before sending it to the voice provider. During this process, we basically format your output and then send it. Because of this, you observe the difference. If you don't want to apply this formatting, you can toggle it off for your Assistant Voice Chunk Plan, then Format Plan, and disable the unwanted or unrequired formatter/utility functions. Let me know if you require further help or have more questions!
m
Thanks @Shubham Bajaj , can you show me a Json payload example to deactivate unrequired function? I currently toggle off the entire format plan
Ping @Shubham Bajaj, I don't know if you saw my previous message?
s
@marem I just looked into your call ID again in the Call config. There is no formatter disabled by default under voice formatting plan. 🔵 15:06:42:135 Voice Input Formatted: "Alors, aujourd'hui, le prochain créneau disponible est à .", Original: "Alors, aujourd'hui, le prochain créneau disponible est à 16 heures 45." Toggle the utility functions removeMarkdownSymbols and removePhrasesInAsterisks, and then it will work as expected.
Copy code
json
{
  "voice": {
    "chunkPlan": {
      "enabled": true,
      "formatPlan": {
        "enabled": true,
        "formattersEnabled": [
          "quote",
          "dash",
          "newline",
          "colon",
          "acronym",
          "dollarAmount",
          "email",
          "date",
          "time",
          "distance",
          "unit",
          "percentage",
          "phoneNumber",
          "number"
        ]
      }
    }
  }
}
m
got it. Thanks @Shubham Bajaj , you can mark it as resolved
k
Marking this ticket as Solved ✅
3 Views